MFC/WIN32
文章平均质量分 77
kevin--你不知道的事
每自作是意,以何令众生。得入无上慧,速成就佛身。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
转载:CString工作原理和常见问题分析
转载:https://blog.youkuaiyun.com/nickwu1220/article/details/6938202 关于Cstring 类 版权所有© Stevencao@benq.com 2003-11-6 看了很多人写的程序,包括我自己写的一些代码,发现很大的一部分bug是关于MFC类中的CString的错误用法的.出现这种错误的原因主要是对CString的实现机制不是太了解。 CString是对于原来标准c中字符串类型的一种的包装。因为,通过很长时间的编程,我们转载 2021-03-09 16:41:26 · 427 阅读 · 0 评论 -
CWnd或CDialog-Create或CreateEx详解(包含窗口类型怎么填+动态创建窗口和控件例子)
前言: 静态创建窗口比较简单,都是资源文件,拖动控件,或支持xml配置的 那么如何动态创建窗口和控件呢? 【 本质:都是利用CreateWindowEx,CreateWindow 下面几点知道就差不多了: [ 1.CreateWindowEx动态创建窗口 CreateWindow动态创建控件 2.注册窗口类使用方法 3.窗口类型填什么(窗口和子窗口) 4.动态创建的窗口或控件响应 5.动态创建的窗口是非阻塞的,所以外边需要加消息循环 ] 】 1动态创建窗口: --CreateWindowE..原创 2020-12-19 17:37:00 · 3982 阅读 · 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 · 365 阅读 · 2 评论 -
MFC SetWindowLong支持功能
原型: WINUSERAPI LONG WINAPI SetWindowLongA( _In_ HWND hWnd, _In_ int nIndex, _In_ LONG dwNewLong); WINUSERAPI LONG WINAPI SetWindowLongW( _In_ HWND hWnd, _In_ int nIndex, _In_ LONG dwNewLong); #ifdef UNICODE #define SetWindowLong S...原创 2020-12-19 17:31:58 · 656 阅读 · 2 评论 -
CWnd与CDialog-自绘控件时继承哪个
1.CDialog,CStatic,CButton都是继承于CWnd,所以 自绘控件 --要么继承于已有的控件,要么继承于Cwnd完全自绘,不要继承于CDialog 自绘自己的窗口 --继承于Cwnd完全自绘,,不要继承于CDialog ---- 2.如果想设计一个自己的CDialog对话框样式怎么办? 最佳方式:资源创建一个对话框,然后利用类向导自动创建类,然后在OnPaint中改就好了 不用追求不用资源纯代码创建CDialog的,太麻烦,还容易出问题,不便于维护 ...原创 2020-12-19 17:29:43 · 256 阅读 · 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 · 261 阅读 · 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 · 1061 阅读 · 1 评论 -
CWnd与CDialog-MFC窗口与SOUI、Duilib窗口
1.MFC CWnd窗口是所有窗口基类,CDialog与其他所有控件,都是继承于CWnd,然后绘制出来的 所以MFC所有窗口都是真窗口 具体布局就是: 主窗口是真窗口,然后里面各个控件都是真窗口,主窗口创建好后,子控件在onsize里调整好位置就行了 鼠标移到主窗口的控件上时,按下、移动等消息都会被控件接收,主窗口就响应不到了 ---------- 2.SOUI、DUIlib 只有主窗口和对话框窗口是真窗口,里面的所有控件都是绘制上去的,不是真窗口 所以到主窗口的这些控件上时,按下、移动等各种.原创 2020-12-19 17:27:23 · 733 阅读 · 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 · 1745 阅读 · 1 评论
分享