MFC/WIN32
文章平均质量分 77
kevin--你不知道的事
IT是最不讲理的行业
展开
-
转载:CString工作原理和常见问题分析
转载:https://blog.csdn.net/nickwu1220/article/details/6938202 关于Cstring 类 版权所有© Stevencao@benq.com 2003-11-6 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们转载 2021-03-09 16:41:26 · 359 阅读 · 0 评论 -
CWnd或CDialog-Create或CreateEx详解(包含窗口类型怎么填+动态创建窗口和控件例子)
前言:静态创建窗口比较简单,都是资源文件,拖动控件,或支持xml配置的那么如何动态创建窗口和控件呢?【本质:都是利用CreateWindowEx,CreateWindow下面几点知道就差不多了:[1.CreateWindowEx动态创建窗口CreateWindow动态创建控件2.注册窗口类使用方法3.窗口类型填什么(窗口和子窗口)4.动态创建的窗口或控件响应5.动态创建的窗口是非阻塞的,所以外边需要加消息循环]】1动态创建窗口: --CreateWindowE..原创 2020-12-19 17:37:00 · 3049 阅读 · 1 评论 -
【MFC/win32实战】 继承CWnd实现的一个tip显示问题收集
继承CWnd实现的一个tip显示后在按下alt+tab后跑到前面不消失了怎么办?一般是因为创建窗口是WS_EX_TOPMOST导致的,解决办法是换成WS_EX_TOOLWINDOW--------------[看创建窗口时填入的窗口的风格bool CWndInfo::CreateInfoWindow(HWND hWnd){ m_hWndParent = hWnd; CString strWndClass = AfxRegisterWndClass(CS_VREDRAW | ...原创 2020-12-19 17:33:57 · 299 阅读 · 2 评论 -
MFC SetWindowLong支持功能
原型:WINUSERAPILONGWINAPISetWindowLongA( _In_ HWND hWnd, _In_ int nIndex, _In_ LONG dwNewLong);WINUSERAPILONGWINAPISetWindowLongW( _In_ HWND hWnd, _In_ int nIndex, _In_ LONG dwNewLong);#ifdef UNICODE#define SetWindowLong S...原创 2020-12-19 17:31:58 · 559 阅读 · 2 评论 -
CWnd与CDialog-自绘控件时继承哪个
1.CDialog,CStatic,CButton都是继承于CWnd,所以自绘控件 --要么继承于已有的控件,要么继承于Cwnd完全自绘,不要继承于CDialog自绘自己的窗口 --继承于Cwnd完全自绘,,不要继承于CDialog----2.如果想设计一个自己的CDialog对话框样式怎么办?最佳方式:资源创建一个对话框,然后利用类向导自动创建类,然后在OnPaint中改就好了不用追求不用资源纯代码创建CDialog的,太麻烦,还容易出问题,不便于维护...原创 2020-12-19 17:29:43 · 187 阅读 · 1 评论 -
CWnd与CDialog-使用成员对象和成员指针创建窗口区别
CWnd与CDialog-使用成员对象和成员指针创建窗口区别?1.成员对象与构造函数有关,不支持时就无法使用成员对象,如class cdlg1111 : public CDialog{public:cdlg1111(CWnd* pParent );}cdlg1111 m_dlg;//就会报错,因为会调用构造函数成员指针就不会,指针只在new的时候调用构造函数cdlg1111 *m_pdlg;//就会报错m_pdlg = new cdlg1111(this);//调用构造2.触发函.原创 2020-12-19 17:29:07 · 205 阅读 · 1 评论 -
CWnd与CDialog-区别
1.创建方式CWnd --通用窗口,使用方式,new出来,创建,显示[CString strWndClass = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW, AfxGetApp()->LoadStandardCursor(IDC_ARROW), (HBRUSH)(COLOR_3DFACE + 1));CMydlg *m_pDlg = new CMydlg();m_pDlg.Create(strWndClass, NULL, WS_POPU..原创 2020-12-19 17:27:57 · 932 阅读 · 1 评论 -
CWnd与CDialog-MFC窗口与SOUI、Duilib窗口
1.MFCCWnd窗口是所有窗口基类,CDialog与其他所有控件,都是继承于CWnd,然后绘制出来的所以MFC所有窗口都是真窗口具体布局就是:主窗口是真窗口,然后里面各个控件都是真窗口,主窗口创建好后,子控件在onsize里调整好位置就行了鼠标移到主窗口的控件上时,按下、移动等消息都会被控件接收,主窗口就响应不到了----------2.SOUI、DUIlib只有主窗口和对话框窗口是真窗口,里面的所有控件都是绘制上去的,不是真窗口所以到主窗口的这些控件上时,按下、移动等各种.原创 2020-12-19 17:27:23 · 628 阅读 · 1 评论 -
CWnd与CDialog-DoModal与ShowWindow区别
1.使用Domodal()时:(1)Domodal()会阻塞调用函数,所以使用局部变量和成员变量都可以;(2)Domodal()前不能调用Create,否则崩溃,不知道为啥使用ShowWindow时:(1)只能使用成员变量方式ShowWindow不会阻塞调用函数,调用完就结束了,局部变量,调用完直接销毁了,窗口就闪一下就没了,局部指针,调用完函数返回了,内存没有手动释放;(2)ShowWindow前必须调用Create保证窗口已经创建了----------------例子:[CD.原创 2020-12-19 17:26:47 · 1503 阅读 · 1 评论