DirectUI的学习随笔

DirectUI已经不算是新名词了,可惜很多是闭源的商业库,根本没有研究价值。

 

最近,发现一个叫DuiLib的界面库很不错,关键是SDK编写的,无需MFC支持, CRT已经足够了,我可不想再带个MFC~

 

duilib界面库基于viksoe的工作http://www.viksoe.dk/code/windowless1.htm,并在此基础上进行大量的改进和BUG的修复,也有自己的可视化设计器,更重要的是,它是免费的~

 

简单的做了个程序,效果如图 :

DirectUI的学习随笔_第1张图片

(标题的自绘可以无视~~~~~~~~~~~~~)

 

在这里,顺便贴些代码,都是编写过程中遇到的问题。

//窗体边角的去除 case WM_SIZE: { if(!IsIconic(*this)) { RECT rcClient; GetClientRect(*this, &rcClient); HRGN hRgn = ::CreateRoundRectRgn(rcClient.left, rcClient.top, rcClient.right + 1, rcClient.bottom + 1, 9, 9); SetWindowRgn(*this, hRgn, TRUE); DeleteObject(hRgn); } goto ret; } //窗体的拖动 case WM_NCHITTEST: { POINT pt; pt.x = GET_X_LPARAM(lParam); pt.y = GET_Y_LPARAM(lParam); RECT rc; GetWindowRect(m_hWnd,&rc); if ((pt.x > rc.left && pt.x < rc.right -100 ) && (pt.y > rc.top && pt.y < rc.top + 30)) { if(!m_pm.FindControl(pt)) { return HTCAPTION; } } return HTCLIENT; }

你可能感兴趣的:(工作,mfc)