
Duilib
_L-
码农茶歇
展开
-
Duilib使用其他目录资源时新窗口读取xml出错问题
当点击红色框的按钮时,按钮的背景图会替换成选中的图片。正常点击标记的按钮会弹出此窗口,但是当发生第一张图片时的事件时再点击此按钮设置框无法弹出,原因是选择图片之后默认的加载资源文件目录改变,需要再重新选择一下加载资源目录。创建设置窗体的代码LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { //BUG /*********begin 需要再次指定目录************/ .原创 2021-05-19 19:35:05 · 2188 阅读 · 0 评论 -
DuiLib 窗口透明方法
在遍寻所有属性之后无果,最后测试出来在Window标签中加上下面两个属性就可以实现透明啦:layeredimage="" layeredopacity=“255”PS:layeredimage属性不要为空,最后设置为何窗口背景一样的图片,不行的话就做一张全透明的背景图片,如果这个地方不设置图片会导致窗口存在一些奇奇怪怪的问题。...转载 2021-04-27 09:47:55 · 605 阅读 · 0 评论 -
Duilib拖动还原之后图标不变的问题
需要处理“WM_SYSCOMMAND”消息LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ // 有时会在收到WM_NCDESTROY后收到wParam为SC_CLOSE的WM_SYSCOMMAND if (wParam == SC_CLOSE) { ::PostQuitMessage(0L); bHandled = TRUE; return 0; } BOOL bZo原创 2021-04-26 10:44:01 · 113 阅读 · 0 评论 -
Duilib中最大化之后任务栏变黑或覆盖问题
//需要修改最大化和最小化的消息LRESULT OnGetMinMaxInfo(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled){ MONITORINFO oMonitor = {}; oMonitor.cbSize = sizeof(oMonitor); ::GetMonitorInfo(::MonitorFromWindow(*this, MONITOR_DEFAULTTOPRIMARY), &oMonitor);原创 2021-04-25 17:27:16 · 346 阅读 · 0 评论 -
Duilib列表多行显示
//获取控件指针m_pMessagelist = static_cast<CListUI*>(m_PaintManager.FindControl(_T("MessageList")));//设置list控件多行显示m_pMessagelist->SetItemTextStyle(DT_WORDBREAK | DT_CENTER | DT_VCENTER | DT_END_ELLIPSIS);原创 2021-02-18 11:14:33 · 725 阅读 · 0 评论 -
Duilib编辑选择框修改单击编辑
ComboEdit中修改消息事件处理//void CComboEditUI::DoEvent(TEventUI& event)函数中 if (event.Type == UIEVENT_BUTTONDOWN) { if (m_pEditWnd) { m_pEditWnd->ShowWindow(TRUE, TRUE); } if (m_pEditWnd) return; m_pEditWnd = new CComboEditWnd();原创 2020-10-15 10:40:11 · 293 阅读 · 0 评论 -
Duilib增加选择编辑选择框(ComboEdit)
1、UIDefine.h#define DUI_CTR_COMBOEDIT (_T("ComboEdit"))2、UIDlgBuilder.cppCControlUI* CDialogBuilder::_Parse(CMarkupNode* pRoot, CControlUI* pParent, CPaintManagerUI* pManager) 函数中else if (_tcsicmp(pstrClass, DUI_CTR_COMBOEDI原创 2020-08-19 10:47:49 · 1660 阅读 · 0 评论 -
Duilib控件拖动改变大小
只有向HorizontalLayout、VerticalLayout等容器种才可使用xml进行拖动改变控件的大小。HorizontalLayout:sepimm=“true” 允许拖动改变大小sepwidth=“6” 响应的宽度minwidth=“500” 最小宽度maxwidth=“800” 最大宽度VerticalLayout:sepimm=“true” 允许拖动改变大小sepheight=“6” 响应的高度minheight=“500” 最小高度maxheight=“8原创 2020-07-10 09:34:30 · 1196 阅读 · 0 评论 -
Duilib杂识
1、链接静态库的时候报“无法解析的外部符号”解决方法:预处理命令添加 “STATIC_LIB”2、添加窗口阴影SetClassLong(m_hWnd, GCL_STYLE, GetClassLong(m_hWnd, GCL_STYLE) | CS_DROPSHADOW);3、使窗口显示到顶层CDuiRect rcWnd;::GetWindowRect(*this, &rcWnd...原创 2020-03-30 11:17:13 · 169 阅读 · 0 评论 -
duilib 中list控件GetCurSel()异常问题
第一次点击列表中的子项时,点击第一个,返回的是-1,每次返回都是返回的上次记录的下标。需要修改UIList.cpp文件中的内容:搜索“DUI_MSGTYPE_ITEMCLICK”(“itemclick”),可以找到两个地方,需要将如下代码修改 if( event.Type == UIEVENT_BUTTONDOWN || event.Type == UIEVENT_RBUTTONDOW...原创 2020-03-19 15:34:09 · 254 阅读 · 0 评论 -
主界面创建新的新界面(Duilib实现)(类似菜单)
先上效果图1、对需要响应的按钮新建一个基于duilib实现的类如: if (msg.sType == _T("click")) { if (msg.pSender == m_pBtSetting) { new CSettingUI(m_hWnd, m_pBtSetting, m_wcurpath, m_iconfilepath); } }2、重写基于duil...原创 2020-02-14 15:34:02 · 565 阅读 · 0 评论 -
windows下C++(Duilib)怎么实现拖拽文件得到文件目录
1、首先对窗口进行初始化,以使其可以进行拖拽::DragAcceptFiles(this->m_hWnd, true);2、在创建窗口的函数(HandleMessage)switch (uMsg) 处添加case WM_DROPFILES: lRes = OnDropFile((HDROP)wParam); break;3、添加 OnDropFile 函数LRESULT...原创 2019-07-08 13:44:44 · 1112 阅读 · 1 评论