2012-08-14 23:16
⁄ 工业·编程
⁄ 共 6634字
PreSubclassWindow PreSubclassWindow是一个很好的定制控件的位置。如果我们通过重载CWnd::PreCreateWindow定制控件,而用户在对话框中使用控件。由于对话框中的控件窗口是通过CreateDlgIndirect创建,不经过CWnd::CreateEx函数,PreCreateWindow函数不会被调用。
其实,用户要在对话框中使用定制控件,必须用DDX或者SubclassDlgItem函数子类化控件,这时PreSubclassWindow一定会被调用。
如果用户直接创建定制控件窗口,CWnd...
windows_API阅读全文
2012-08-14 23:15
⁄ 工业·编程
⁄ 共 2358字
我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消息大概如下:
通常,我们拖动对话框窗口的标题栏来移动窗口,但有时候,我们想通过鼠标在客户区上拖动来移动窗口。
一个容易想到的方案是,处理鼠标消息WM_LBUTTONDOWN和WM_LBUTTONUP。在OnLButtonUp函数中计算鼠标位置的变化,调用MoveWindow实现窗口的移动。
注意,拖动标题栏移动窗口的时候,会出现一个矩形框,它提示了窗口移动的当前位置。当鼠标左键放开的...
MFC阅读全文
2012-08-14 23:14
⁄ 工业·编程
⁄ 共 246字
新建一个对话框程序,在上面添加一个CMyBtn(class CMyBtn : public CButton),左键单击按钮,按钮会相应WM_LBUTTONDOWN,然后CButton::OnLButtonDown(nFlags, point);
会以一个WM_NOTIFY的消息形式传递给对话框。对话框可以继续处理该事件。
在对话框里面使用该消息的方法是:ON_COMMAND(MY_BTN, memberfun);
其实WM_NOTIFY是以WM_COMMAND的形式呈现的。。(深入浅出MFC--P411)
MFC阅读全文
2012-08-14 23:13
⁄ 工业·编程
⁄ 共 6093字
基础知识很重要,Win32中的窗口句柄和MFC窗口类对象的2个概念。前者被后者包装了起来。
先看下MSDN中的TN017中的文章
In the case of C++ Windows objects that do perform auto-cleanup, you must callDestroyWindow. If you use operator delete directly, the MFC diagnostic memory allocator will alert you that you are freeing memory twice (the first call todelete as well as the indirect call to "delete th...
UI界面阅读全文
2012-08-14 23:12
⁄ 工业·编程
⁄ 共 3898字
我们经常在一些软件中看到类似的功能:鼠标移动到一个按钮(或其他控件)上的时候,自动弹出一些提示(不是弹出对话框),以提醒用户该控件的作用或注意事项。这种提示就是所说的Tooltip(如图1所示)。关于Tooltip,网上已经有很多资料了,我在这里只是给大家提供一些链接,让没有做过的朋友能在最短的时间内实现这个功能。
图1
Codeproject已经有许多现成的Tooltip类,并且有的功能非常之强,可以直接拿来用,这会为你节省...
windows_API阅读全文
2012-08-14 23:07
⁄ 工业·编程
⁄ 共 792字
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。
请看下面的程序。
#include <iostream>; using name...
c++阅读全文
2012-08-14 23:06
⁄ 工业·编程
⁄ 共 263字
WORD * p1 = new WORD(3);<span style="white-space:pre"> </span> WORD * p2 = new WORD[3]; int sWORD = sizeof(WORD); // 2
int msp1 = _msize(p1); // 2 int msp2 = _msize(p2); // 6 cout << *p1 << endl; // 3
大家看后面的debug值就知道结果了。
WORD占2个字节.
P1动态...
c++阅读全文
2012-08-14 23:04
⁄ 工业·编程
⁄ 共 4958字
该功能的实现来源于codeproject上面的一个例子《Tooltips for Menu Item and popup menuitem》,其实例子讲的步骤很简单,不过我不打算简单的翻译一下,林语堂先生不是说:“只用一样东西,不明白它的道理,实在不高明”。 实现该功能的核心在于作者自己建立的一个MenuToolTip类,182行的代码实现了菜单提示的功能,下面我就将其一一解释开来,在每行代码的后面有具体的解释。 #ifndef _MENU_TOOL...
UI界面阅读全文
2012-08-14 23:02
⁄ 工业·编程
⁄ 共 2082字
最近看到一篇文章《谈对话框的动画弹出和动画消隐》,文章提到了利用定时器实现对话框动画的效果,比葫芦化瓢,却发现不但没有动画,而且连窗口也没有了,经过简单的修改,终于实现了文中的效果,发现是作者少说了几个地方,在此将完整的实现方法贴出来,也算是在这个小程序上花费时间的小成果吧。相信我,照着这个步骤,肯定可以做出来的:->。
首先,在vc6中创建一个基于对话框的程序,并简单的创建一个...
UI界面阅读全文
2012-08-13 23:01
⁄ 工业·编程
⁄ 共 1726字
在Windows应用程序中,对话框是应用最广泛也是比较难控制其风格(外表)的一类窗口。相信用过Windows 的朋友在享受其强大功能的同时,一定也为它所提供的具有立体感的界面而感叹吧。通常情况下,对话框的弹出和消隐都是瞬时的,下面将介绍如何实现对话框的动画弹出和消隐,增强程序的美观性。 请按以下步骤实现: 第一步:生成我们的工程(基于对话框)FlashDlg,所有的选项都取默认值,在对话框上随意添加几个控件。 第...
UI界面阅读全文