|
10炫彩币
- #include "stdafx.h"
- #include "XC_UIDebug.h"
- HWINDOW m_hWindow;
- typedef std::map <std::wstring, std::wstring> Resource;
- std::map <std::wstring, HELE> hEles;
- std::map<std::wstring, HIMAGE> hImages;
- std::map<std::wstring, HXCGUI> hLayoutFrames;
- void CreateWindows(void);
- void CreateTop(HXCGUI& hLayoutFrameTop);
- bool LoadResource(Resource hResource);
- Resource Init_LoadRes(void);
- int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
- _In_opt_ HINSTANCE hPrevInstance,
- _In_ LPTSTR lpCmdLine,
- _In_ int nCmdShow)
- {
- XInitXCGUI();
- CreateWindows();
- XRunXCGUI();
- XExitXCGUI();
- return TRUE;
- }
- void CreateWindows(void)
- {
- LoadResource(Init_LoadRes());
- m_hWindow = XWnd_Create(0, 0, 600, 500, L"WindowsUI", NULL, xc_window_style_default);
- hLayoutFrames[L"MainUI"] = XLayout_Create();
- hLayoutFrames[L"Background"] = XLayout_Create();
- hLayoutFrames[L"Masked"] = XLayout_Create();
- hLayoutFrames[L"Content"] = XLayout_Create();
- hLayoutFrames[L"Top"] = XLayout_Create();
- hLayoutFrames[L"Body"] = XLayout_Create();
- XLayout_SetLayoutWidth(hLayoutFrames[L"MainUI"], layout_size_type_fill, 0);
- XLayout_SetLayoutHeight(hLayoutFrames[L"MainUI"], layout_size_type_fill, 0);
- XLayout_SetLayoutWidth(hLayoutFrames[L"Background"], layout_size_type_fill, 0);
- XLayout_SetLayoutHeight(hLayoutFrames[L"Background"], layout_size_type_fill, 0);
- XLayout_SetLayoutWidth(hLayoutFrames[L"Masked"], layout_size_type_fill, 0);
- XLayout_SetLayoutHeight(hLayoutFrames[L"Masked"], layout_size_type_fill, 0);
- XLayout_SetLayoutWidth(hLayoutFrames[L"Content"], layout_size_type_fill, 0);
- XLayout_SetLayoutHeight(hLayoutFrames[L"Content"], layout_size_type_fill, 0);
- XLayout_AddLayoutObject(hLayoutFrames[L"MainUI"], hLayoutFrames[L"Background"]);
- XLayout_AddLayoutObject(hLayoutFrames[L"MainUI"], hLayoutFrames[L"Masked"]);
- XLayout_AddLayoutObject(hLayoutFrames[L"MainUI"], hLayoutFrames[L"Content"]);
- XWnd_BindLayoutObject(m_hWindow, window_position_body, hLayoutFrames[L"MainUI"]);
- //XWnd_RegEventCPP(m_hWindow, WM_DESTROY, &WindowsUI::OnDestroy);
- //XWnd_RegEventCPP(m_hWindow, WM_SIZE, &WindowsUI::OnWndSize);
- HXCGUI background = XShapePic_Create(0, 0, 599, 900);
- XShapePic_SetImage(background,hImages[L"background"]);
- XLayout_AddShape(hLayoutFrames[L"Background"], background);
- //XWnd_EnableDragBorder(m_hWindow, false);
- XWnd_SetLayoutSize(m_hWindow, 0, 0, 0, 0);
- XWnd_EnableDragCaption(m_hWindow, true);
- XLayout_SetLayoutWidth(hLayoutFrames[L"Top"], layout_size_type_fill, 0);
- XLayout_SetLayoutHeight(hLayoutFrames[L"Top"], layout_size_type_fixed, 27);
- XLayout_SetAlignH(hLayoutFrames[L"Top"], layout_align_right);
- XLayout_SetAlignV(hLayoutFrames[L"Top"], layout_align_top);
- XLayout_AddLayoutObject(hLayoutFrames[L"Content"], hLayoutFrames[L"Top"]);
- CreateTop(hLayoutFrames[L"Top"]);
- for (auto hEle : hEles)//刷新所有ele
- {
- XEle_RedrawEle(hEle.second);
- }
- for (auto hLayout : hLayoutFrames)//刷新所有layout
- {
- XLayout_ShowLayout(hLayout.second, true);
- XLayout_AdjustLayout(hLayout.second);
- }
- XWnd_AdjustLayout(m_hWindow);
- XWnd_ShowWindow(m_hWindow, SW_SHOW);
- }
- void CreateTop(HXCGUI& hLayoutFrameTop)
- {
- XC_ShowLayoutFrame(TRUE);
- hLayoutFrames[L"ControlButton"] = XLayout_Create();
- hLayoutFrames[L"ToolsButton"] = XLayout_Create();
- XLayout_SetLayoutWidth(hLayoutFrames[L"ControlButton"], layout_size_type_auto, 0);
- XLayout_SetLayoutHeight(hLayoutFrames[L"ControlButton"], layout_size_type_fill, 0);
- XLayout_SetAlignH(hLayoutFrames[L"ControlButton"], layout_align_right);
- XLayout_SetAlignV(hLayoutFrames[L"ControlButton"], layout_align_top);
- XLayout_SetSpace(hLayoutFrames[L"ControlButton"], 0);
- XLayout_SetLayoutWidth(hLayoutFrames[L"ToolsButton"], layout_size_type_weight, 1);
- XLayout_SetLayoutHeight(hLayoutFrames[L"ToolsButton"], layout_size_type_fill, 0);
- XLayout_SetAlignH(hLayoutFrames[L"ToolsButton"], layout_align_left);
- XLayout_SetAlignV(hLayoutFrames[L"ToolsButton"], layout_align_top);
- XLayout_SetSpace(hLayoutFrames[L"ToolsButton"], 0);
- hEles[L"hButton_close"] = XBtn_Create(0, 0, 30, 27, nullptr);
- hEles[L"hButton_minimum"] = XBtn_Create(0, 0, 30, 27, nullptr);
- hEles[L"hButton_maximize"] = XBtn_Create(0, 0, 30, 27, nullptr);
- XBtn_SetType(hEles[L"hButton_close"], button_type_close);
- XBtn_SetType(hEles[L"hButton_minimum"], button_type_min);
- XBtn_SetType(hEles[L"hButton_maximize"], button_type_max);
- XBtn_AddBkImage(hEles[L"hButton_close"], button_state_leave, hImages[L"sysbtn_close_normal"]);
- XBtn_AddBkImage(hEles[L"hButton_close"], button_state_stay, hImages[L"sysbtn_close_hover"]);
- XBtn_AddBkImage(hEles[L"hButton_close"], button_state_down, hImages[L"sysbtn_close_down"]);
- XEle_EnableBkTransparent(hEles[L"hButton_close"], TRUE);
- XEle_EnableFocus(hEles[L"hButton_close"], false);
- XBtn_AddBkImage(hEles[L"hButton_minimum"], button_state_leave, hImages[L"sysbtn_min_normal"]);
- XBtn_AddBkImage(hEles[L"hButton_minimum"], button_state_stay, hImages[L"sysbtn_min_hover"]);
- XBtn_AddBkImage(hEles[L"hButton_minimum"], button_state_down, hImages[L"sysbtn_min_down"]);
- XEle_EnableBkTransparent(hEles[L"hButton_minimum"], TRUE);
- XEle_EnableFocus(hEles[L"hButton_minimum"], false);
- XBtn_AddBkImage(hEles[L"hButton_maximize"], button_state_leave, hImages[L"sysbtn_max_normal"]);
- XBtn_AddBkImage(hEles[L"hButton_maximize"], button_state_stay, hImages[L"sysbtn_max_hover"]);
- XBtn_AddBkImage(hEles[L"hButton_maximize"], button_state_down, hImages[L"sysbtn_max_down"]);
- XEle_EnableBkTransparent(hEles[L"hButton_maximize"], TRUE);
- XEle_EnableFocus(hEles[L"hButton_maximize"], false);
- XLayout_AddEle(hLayoutFrames[L"ControlButton"], hEles[L"hButton_minimum"]);
- XLayout_AddEle(hLayoutFrames[L"ControlButton"], hEles[L"hButton_maximize"]);
- XLayout_AddEle(hLayoutFrames[L"ControlButton"], hEles[L"hButton_close"]);
- XLayout_AddLayoutObject(hLayoutFrameTop, hLayoutFrames[L"ControlButton"]);
- }
- bool LoadResource(Resource hResource)
- {
- for (auto hRes : hResource){
- hImages[hRes.first] = XImage_LoadFile(hRes.second.c_str(), false);
- XImage_EnableAutoDestroy(hImages[hRes.first], false);
- }
- return true;
- }
- Resource Init_LoadRes(void)
- {
- Resource hRes;
- hRes[L"sysbtn_close_down"] = L"Images\\sysbtn_close_down.png";
- hRes[L"sysbtn_close_hover"] = L"Images\\sysbtn_close_hover.png";
- hRes[L"sysbtn_close_normal"] = L"Images\\sysbtn_close_normal.png";
- hRes[L"sysbtn_max_down"] = L"Images\\sysbtn_max_down.png";
- hRes[L"sysbtn_max_hover"] = L"Images\\sysbtn_max_hover.png";
- hRes[L"sysbtn_max_normal"] = L"Images\\sysbtn_max_normal.png";
- hRes[L"sysbtn_min_down"] = L"Images\\sysbtn_min_down.png";
- hRes[L"sysbtn_min_hover"] = L"Images\\sysbtn_min_hover.png";
- hRes[L"sysbtn_min_normal"] = L"Images\\sysbtn_min_normal.png";
- hRes[L"sysbtn_restore_down"] = L"Images\\sysbtn_restore_down.png";
- hRes[L"sysbtn_restore_hover"] = L"Images\\sysbtn_restore_hover.png";
- hRes[L"sysbtn_restore_normal"] = L"Images\\sysbtn_restore_normal.png";
- hRes[L"tools_normal"] = L"Images\\tools.png";
- hRes[L"tools_down"] = L"Images\\tools_down.png";
- hRes[L"tools_hover"] = L"Images\\tools_hover.png";
- hRes[L"background"] = L"Images\\background.jpg";
- return hRes;
- }
复制代码
|
最佳答案
查看完整内容
问题有三:
其一: 你创建的控件 不设置 父元素句柄,这意味着是在内存中,和炫彩窗口没任何联系,导致无法显示
其二: 你虽然创建了布局。但是你创建了布局,没有把控件添加到布局里面,布局无法管理你的元素,即使你
第一步做正确了,那也不会得到你想要的结果。。。
其三: 你的代码虽然很简洁,但是维护起来太吃力了。。。换肤虽然很容易,但是,,,,后来的人来维护你的代码鸭梨太大。。。。。。。。。。 ...
|