WEB开发网
开发学院软件开发VC MFC程序员WTL指南(6)高级对话框用户界面类 阅读

MFC程序员WTL指南(6)高级对话框用户界面类

 2008-01-19 20:25:19 来源:WEB开发网   
核心提示:默认情况下,按钮只是引用image list,MFC程序员WTL指南(6)高级对话框用户界面类(6),所以OnInitDialog()不能delete它所创建的image list,下面显示的是新按钮的一般状态,CBitmapButton的析构函数会销毁按钮使用的image list, BMPBTN_AUTOFIRE

默认情况下,按钮只是引用image list,所以OnInitDialog()不能delete它所创建的image list。下面显示的是新按钮的一般状态,注意控件是如何根据图像的大小来调整自己的大小。

因为CBitmapButton是一个非常有用的类,我想介绍一下它的公有方法。

CBitmapButton methods

CBitmapButtonImpl类包含了实现一个按钮的所有代码,除非你想重载某个方法或消息处理,你可以对控件直接使用CBitmapButton类。

CBitmapButtonImpl constructorCBitmapButtonImpl(DWORD dwExtendedStyle = BMPBTN_AUTOSIZE,HIMAGELIST hImageList = NULL)

构造函数可以指定按钮的扩展样式(这与窗口的样式不冲突)和图像列表,通常使用默认参数就足够了,因为可以使用其他的方法设定这些属性。

SubclassWindow()BOOL SubclassWindow(HWND hWnd)

SubclassWindow()是个重载函数,主要完成控件的子类化和初始化控件类保有的内部数据。

Bitmap button extended stylesDWORD GetBitmapButtonExtendedStyle()
DWORD SetBitmapButtonExtendedStyle(DWORD dwExtendedStyle, DWORD dwMask = 0)

CBitmapButton支持一些扩展样式,这些扩展样式会对按钮的外观和操作方式产生影响:

BMPBTN_HOVER 使用hot-tracking,当鼠标移到按钮上时按钮被画成焦点状态。 BMPBTN_AUTO3D_SINGLE, BMPBTN_AUTO3D_DOUBLE 在按钮图像周围自动产生一个三维边框,当按钮拥有焦点时会显示一个表示焦点的虚线矩形框。另外如果你没有指定按钮按下状态的图像,将会自动生成一个。BMPBTN_AUTO3D_DOUBLE样式生成的边框稍微粗一些,其他特征和BMPBTN_AUTO3D_SINGLE一样。 BMPBTN_AUTOSIZE 按钮调整自己的大小以适应图像大小,这是默认样式。 BMPBTN_SHAREIMAGELISTS 如果指定这个样式,按钮不负责销毁按钮使用的image list,如果不使用这个样式,CBitmapButton的析构函数会销毁按钮使用的image list。 BMPBTN_AUTOFIRE 如果设置这个样式,在按钮上按住鼠标左键不放将会产生连续的WM_COMMAND消息。

上一页  1 2 3 4 5 6 7 8 9 10 11  下一页

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接