![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC++/MFC
aa313619456
这个作者很懒,什么都没留下…
展开
-
计算器的制作
1.最开始一个问题,系统自带的计算机上的按钮是有颜色的。要模仿,首先外观总要像的。于是想到了重载WM_CLTCOLOR消息处理函数,发现没有效果。第二天找到原因。 PS:其实重载WM_CLTCOLOR消息处理函数是有效果的,关键是要设置为主窗口绘制。并且在重载DRAWITEM里面必须在按钮上输出文字。在模板中创建按钮的时候,当样式设置为主窗口绘制之后,上面的文字是没有作用的,所以必须原创 2010-05-05 17:49:00 · 477 阅读 · 0 评论 -
SetMapMode,SetWindowExt,SetViewportExt,SetViewPortOrg函数的一些理解
四个函数的原型如下(来自MSDN)1.virtual int SetMapMode( int nMapMode ); //设置映射的模式2.virtual CSize SetWindowExt( int cx, int cy );//设置逻辑窗口大小3.virtual CSize SetViewportExt( int cx, int cy );//设置物理设备范围,为设定原点作准原创 2010-05-10 10:29:00 · 781 阅读 · 0 评论 -
如何派生在类向导中不存在的类
这个问题可能很多人碰到,我就是其中之一。今天在做自定义控件程序的时候,想从CWnd中派生出一个类,竟然发现BASE CLASS中没有CWnd.后来在网上搜下,找到了一个解决办法。步骤如下:打开类向导,创建一个类,假如你想选择其基类为CWnd,但是可供选择的类中并没有,没关系,你先随便选择一个类,比如CBUTTON,然后手动修改代码。 注意:当然你也可以按照C++的规则手动原创 2010-05-08 11:45:00 · 367 阅读 · 0 评论 -
扩展消息的总结
学习了扩展消息的总结之后,最深的体会是MFC里面的东西很严谨,任何一个步骤都不可缺少。这个接下来说。先总结一下。 到此为止,可以有以下三种方法可以将多个控件的消息让一个消息映射函数处理。(1)利用ON_COMMAND_EX。缺点:旧式通知消息不支持。优点:不要求控件的ID连续,可以让消息继续传递,因为它的返回值是个BOOL类型,如果返回FALSE,就可以让消息继续传递;参数NID可以很清原创 2010-05-08 10:03:00 · 437 阅读 · 0 评论 -
在静态控件上加载位图或者图像的一点问题
这里主要有几个问题。1.静态编辑框的ID默认为IDC_STATIC,不管你创建多少个,它的ID始终都是IDC_STATIC,并不会像其他控件(如按钮等)那样,自动的默认为IDC_BUTTON1,IDC_BUTTON2等。而且在默认的情况下,你并不能为该控件增加控件变量或者让其相应消息,只有将控件的ID改变之后才可以为其增加控件变量或让其相应一些消息。2.窗口的样式的确十分重要。很多时候你忽原创 2010-05-07 16:18:00 · 816 阅读 · 0 评论 -
常见窗口之间的区别和相同点
在MFC中,窗口甚多,很容易混淆。最重要的是下面两组概念一定要非常清晰。1.父窗口和所有者窗口。区别:(1)Z-ORDER。父窗口的Z-ORDER和子窗口的Z-ORDER是相同的。而所有者的Z-ORDER和受控窗口的Z-ORDER是不同。一般情况下,受控窗口的Z-ORDER比所有者的Z-ORDER大。 (2)绘制区。子窗口只能在父窗口的绘制区内绘制,而受控窗口可以在所有者窗口的绘制原创 2010-05-08 10:26:00 · 403 阅读 · 0 评论 -
窗口对象的自动清除
一个MFC窗口对象包括两方面的内容:一是窗口对象封装的窗口,即存放在m_hWnd成员中的HWND(窗口句柄),二是窗口对象本身是一个C++对象。要删除一个MFC窗口对象,应该先删除窗口对象封装的窗口,然后删除窗口对象本身。 删除窗口最直接方法是调用CWnd::DestroyWindow或::DestroyWindow,前者封装了后者的功能。前者不仅会调用后者,而且会使成员m_hWnd保存的原创 2010-05-07 12:12:00 · 439 阅读 · 0 评论 -
非模式对话框的特点
模态对话框不同,非模态对话框不垄断用户的输入,用户打开非模态对话框后,仍然可以与其它界面进行交互。 非模态对话框的设计与模态对话框基本类似,也包括设计对话框模板和设计CDialog类的派生类两部分。但是,在对话框的创建和删除过程中,非模态对话框与模态对话框相比有下列不同之处: 非模态对话框的模板必须具有Visible风格,否则对话框将不可见,而模态对话框则无需设置该项风格。更原创 2010-05-07 11:32:00 · 847 阅读 · 0 评论 -
疑惑(关于SETPANETEXT)
昨天做了一个在状态栏显示当前时间的程序,怎么都没有效果,今天早上重新一运行就没有问题了。很奇怪。不知道有没有人碰到和我一样的问题。原创 2010-05-07 09:27:00 · 680 阅读 · 0 评论 -
AppWizard所创建的文件
AppWizard在读者指定的C:/Hello目录下创建了许多文件,这些文件包含了框架程序的所有的类、全局变量的声明和定义。初学者面对这一大堆文件可能会不知所措。现在我们把各个文件的作用及对应的类介绍一下。 根据可选项,AppWizard所创建的文件会略有不同。标准的AppWizard文件包括:工作区文件、项目文件和make文件应用程序源文件和头文件转载 2010-05-06 15:43:00 · 357 阅读 · 0 评论 -
MFC 单文档框架的主菜单创建时间
在主框架的OnCreate函数中,你可以看到工具条和状态栏的创建,理论上来说,你也应该可以看到主菜单的创建。找找看,发现没有。但是当你运行程序的时候,却又明明有主菜单。很显然,MFC还是创建了主菜单,只是在某个函数中将它隐藏了。那是在哪呢?慢慢找,不着急。 你看到前面有这样的一句话,if (CFrameWnd::OnCreate(lpCreateStruct) == -1)原创 2010-05-11 12:05:00 · 1871 阅读 · 0 评论