STYLE设计经验摘记

对于应用程序的外观设计,也有不同的操作函数与操作技巧,现汇总整理如下。


1.virtual BOOL PreCreateWindow(   CREATESTRUCT& cs );调用由框架在Windows窗口中先前创建附加到此CWnd 对象。


2.CREATESTRUCT 结构定义初始化参数传递给应用程序的窗口过程。

 typedef struct tagCREATESTRUCT {
   LPVOID lpCreateParams;
   HANDLE hInstance;
   HMENU hMenu;
   HWND hwndParent;
   int cy;
   int cx;
   int y;
   int x;
   LONG style;
   LPCSTR lpszName;
   LPCSTR lpszClass;
   DWORD dwExStyle;
} CREATESTRUCT;


lpCreateParams 将与要使用数据的点创建一个窗口。
hInstance 识别模块拥有新窗口模块的实例句柄。
hMenu 标识新窗口将使用菜单。 子窗口,如果包含整数 ID.
hwndParent 标识拥有新窗口的窗口。 新窗口,如果是顶级窗口,该成员是NULL
cy 指定窗口的新高度。
cx 定窗口的新宽度。
y 指定新窗口左上角的 y 坐标。 如果新窗口是子窗口,坐标系是相对于父窗口;否则是相对于屏幕坐标原点。
x 指定新窗口左上角的 x坐标。 如果新窗口是子窗口,坐标系是相对于父窗口;否则是相对于屏幕坐标原点。
style 指定新窗口中 style
lpszName 为指定新窗口的名称以 NULL 结尾的字符串的位置。
lpszClass 为指定新窗口的窗口类名的 null 终止的字符串的结构;WNDCLASS (点有关更多信息,请参见 Windows SDK。)
dwExStyle 对于新窗口指定 扩展样式


3.HINSTANCE AFXAPI AfxGetInstanceHandle( );此函数使您能够检索当前应用程序的实例句柄。

应用程序当前实例的HINSTANCE如果调用从 DLL 的内部链接到MFC 版本的 USRDLL, 返回DLL的HINSTANCE


4.在MFC程序中,如果想要修改应用程序窗口的图标,则应在框架类中进行,因为框架窗口中才有标题栏,所以才能修改。如果想要修改程序窗口的背景和光标,就应该在视类中进行。


5.AfxRegisterWndClass()。可以注册自己的窗口类。

LPCTSTR AFXAPI AfxRegisterWndClass(   UINT nClassStyle,   HCURSOR hCursor = 0,   HBRUSH hbrBackground = 0,   HICON hIcon = 0 );

nClassStyle

指定窗口在样式类的样式或组合,创建使用了按位或 (|) 运算符,窗口类。有关类样式列表,请参阅《Windows SDK的WNDCLASS 结构。如果 NULL,默认设置如下:

  • 设置鼠标样式为 CS_DBLCLKS,路由信息。双击窗口过程,当用户双击鼠标时。

  • 设置箭头光标样式。Windows 标准 IDC_ARROW

  • 设置背景画笔为 NULL,因此窗口,不会清除其背景。

  • 设置图标到标准,Windows 徽标波浪标志图标。

hCursor 指定处理于各 Windows 的安装光标资源创建一个窗口类。 如果使用0IDC_ARROW 默认将获取标准光标。 hbrBackground 指定处理于各 Windows 的安装光标资源创建一个窗口类。 如果使用0默认,您将具有一NULL 背景画笔,并且,窗口,在默认情况下,其背景不会清除,在处理时。WM_ERASEBKGND hIcon 指定处理于各 Windows 的安装光标资源创建一个窗口类。 如果使用0默认,您将获取标准标志,波浪形 Windows 徽标的图标。


返回值为包含类名称的非终止字符串。可以将此类命名为CWnd 或其他CWnd-派生的类的创建 成员函数来创建的窗口。名称由 Microsoft 基础类库生成的。


6.SetClassLong()。该函数替换额外的类存储空间中指定偏移量处的32位长整型值,或替换指定窗口所属类的WNDCLASSEX结构(应该是替换这个结构体中值,没有把结构体给换了吧)。

函数原型:DWORD SetClassLong(HWND hWnd,int nlndex,LONG dwNewLong)

hWnd: 窗口句柄及间接给出的窗口所属的类。
nlndex:指定将被替换的32位值。在额外类存储空间中设置32位值,应指定一个大于或等于0的 偏移量
有效值的范围从0到额外类的存储空间的字节数一4;例如,若指定了12个字节或多于12个字节的额外类存储空间,则索引值为8时,对应的是第三个32位整数值。要设置WNDCLASSEX结构中的任何值,指定下面索引之一:
GCL_CBCLSEXTRA:设置与类相关的尺寸的字节大小。设定该值不改变己分配的额外字节数。
GCL_CBWNDEXTRA:设置与类中的每一个窗口相关的尺寸的字节大小。设定该值不改变已分配额外字节数。查看如何进入该内存,参看SetWindowLOng。
GCL_HBRBACKGROUND:替换与类有关的背景刷子的句柄。
GCL_HCURSOR:替换与类有关的光标的句柄。GCL_HICON:替换与类有关的图标的句柄。
GCL_HMODULE:替换注册类的模块的句柄。GCL_STYLE:替换 窗口类的风格位。
GCL_MENUNAME :替换菜单名字符串的地址。该字符串标识与类有关的菜单资源。
GCL_WNDPROC :替换与窗口类有关的窗口过程的地址。
dwNewLong:指定的替换值。

返回值:如果函数成功,返回值是原来类结构中32位整数;如果未事先设定,返回值为0。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。


7.MAKEINTRESOURCE是一个资源名转换的宏,这个宏是把一个数字类型转换指针类型的宏,它不存在释放的问题·


8.CToolBar::Create  This member function creates a Windows toolbar (a child window) and associates it with theCToolBar object.

 virtual BOOL Create(  CWnd* pParentWnd, DWORD dwStyle = WS_CHILD |  WS_VISIBLE | CBRS_TOP,   UINT nID = AFX_IDW_TOOLBAR );


pParentWnd    Pointer to the window that is the toolbar's parent. dwStyle           The toolbar style. Additional toolbar styles supported are:
  • CBRS_TOP   Control bar is at top of the frame window.

  • CBRS_BOTTOM   Control bar is at bottom of the frame window.

  • CBRS_NOALIGN   Control bar is not repositioned when the parent is resized.

  • CBRS_TOOLTIPS   Control bar displays tool tips.

  • CBRS_SIZE_DYNAMIC   Control bar is dynamic.

  • CBRS_SIZE_FIXED   Control bar is fixed.

  • CBRS_FLOATING   Control bar is floating.

  • CBRS_FLYBY   Status bar displays information about the button.

  • CBRS_HIDE_INPLACE   Control bar is not displayed to the user.

nID             The toolbar's child-window ID.

Return ValueNonzero if successful; otherwise 0


9.CToolBar::CreateEx  Call this function to create a Windows toolbar (a child window) and associate it with theCToolBar object.

virtual BOOL CreateEx(   CWnd* pParentWnd,   DWORD dwCtrlStyle = TBSTYLE_FLAT,   DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP,
   CRect rcBorders = CRect(   0,   0,   0,   0),   UINT nID = AFX_IDW_TOOLBAR);

pParentWnd   Pointer to the window that is the toolbar's parent. dwCtrlStyle       Additional styles for the creation of the embedded CToolBarCtrl object. By default, this value is set to TBSTYLE_FLAT. For a complete list of toolbar styles, see dwStyle.
dwStyle             The toolbar style. See Toolbar Control and Button Styles in the Windows SDK for a list of appropriate styles. rcBorders           A CRect object that defines the widths of the toolbar window borders. These borders are set to 0,0,0,0 by default, thereby resulting in a toolbar window with no borders.
nID                 The toolbar's child-window ID.


10.CStatusBar::SetIndicators 此成员函数用来将每一个指示器的ID设置为由数组lpIDArray的相应元素指定的值,加载由每一个ID指定的字符串资源,并将这个字符串设置为此指示器的文本。

BOOL SetIndicators( const UINT* lpIDArray, int nIDCount );返回值:如果成功则返回非零值;否则返回0。





.











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值