mfc
文章平均质量分 65
gx_wqm
日拱一卒,功不唐捐。
展开
-
mfc自绘对话框(无边框、可移动的对话框)
创建无边框,无标题,可移懂得自绘对话框,见效果图: 代码 //.h #pragma once // CBasePopDialog 对话框 class CBasePopDialog : public CDialog { DECLARE_DYNAMIC(CBasePopDialog) public: CBasePopDialog(CWnd* pParent = NULL);原创 2015-05-11 14:12:39 · 2400 阅读 · 0 评论 -
浅谈mfc子类化
一、引入子类化概念的原因: 如果你对CEdit控件有这样的需求:只允许用户输入数字或是字幕!你会怎么做? 1. 你可以二话不说的重写这个类。 2. 在CEdit控件的父窗口中的PreTranslateMessage中拦截这个控件的输入。 两个方法都能实现这个需求,但方法1太过于费时费力。在这里,方法二看似可以完美的解决这个问题。 但是某些情况下,消息不经过消息队列(sendMessage原创 2015-05-11 10:34:13 · 826 阅读 · 0 评论 -
继承cwnd的滚动条控件
//1 ScrollBarCtl.h #include // CScrollBarCtl class CScrollBarCtl : public CWnd { DECLARE_DYNAMIC(CScrollBarCtl) public: CScrollBarCtl(); virtual ~CScrollBarCtl(); void addText(CString st原创 2015-04-15 20:18:54 · 948 阅读 · 0 评论 -
mfc 继承cwnd 实现类似tabControl的标签按钮
以上是效果图. //LableControl.h #pragma once //标签按钮消息 #define IDC_LABLE_INDEX 0 // CLableControl class CLableControl : public CWnd { DECLARE_DYNAMIC(CLableControl) public: CLableControl();原创 2015-04-14 17:35:31 · 980 阅读 · 0 评论 -
AfxGetApp()->GetMainWnd()和AfxGetMainWnd()的区别
1. 获取的是主线程的窗口句柄。 2. AfxGetMainWnd()获取的是所在线程的窗口句柄。 在单线程下他们获得是同一个窗口,多线程下则不是。 下面是一个线程函数: void /*Cthread1Dlg::*/threadFunc() { CTime time; CString strTime; g_bRun = true; while(g_bRun) {原创 2015-05-12 16:50:35 · 2500 阅读 · 0 评论