例如:在文件类型列表框的编辑框要显示“可执行文件(*.exe)”,而在它的下拉列表框中列出“小型可执行文件(*.com)、批处理文件(*.bat)、All Files(*.*)”内容,则变量定义如下:CFileDialogc m_OpenDialog(TRUE m_OpenDialog(TRUE,"exe",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"可执行文件(*.exe) | *.exe|小型可执行文件(*.com)|*.com |批处理文件(*.bat) | *.bat | All Files (*.*) | *.* ||",NULL);
说明:第五个参数lpszFilter为一个指向字符串的指针,在列表框中要显示的字符后跟一个用“|”括起来
的字符串,为要显示文件的文件类型。
4.最高窗口的实现
最高窗口就是总浮动在其他窗口上的,不会被一般窗口遮住的窗口,最高窗口技术在编程中有着很广泛的应用。VC++中对基于SDI、MDI的运用
程序,要实现最高窗口,只要在框架窗口类CMainFrame中的PreCreateWindow()函数中加入“cs.dwExStyle =WS_EX_TOPMOST;”即可。关于函数PreCreateWindow()及结构CREATESTRUCT的详细信息可参见VC++的联机文档。
而对基于对话框的运用
程序,如何实现最高窗口却很少论及,以下便是一种实现方法。
重载要实观最高窗口的对话框的OnInitDialog()函数,方法是进入ClassWizard,在Object ID列表框中选择该对话框的ID,在Message列表框中选择WM_INITDIALOGG,单击Add Function按钮后,即对onlnitDialog函数进行了重载。再按下Edit code按钮,加入以下语句:
const CWnd * pWndInsertAfter;
pWndInsertAfter = &wndTopMost;
SetWindowPos(pWndInsertAfter,0,0,0,0,SWP_NOSIZE | SWP_NOMOVE);
函数SetWindowPos原型为BOOL SetWindowPos(const CWnd * pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);
pWndInsertAfter为指向标识窗口类型的CWnd对象的指针。
x,y为窗口左上角的坐标。
cx,cy为窗口的宽与高。
nFlags确定窗口的大小及位置。当为SWP_NOSIZE时,忽略cx,cy。当为SWP_NOMOVE时,忽略x,y。
5.窗口最大化、最小化的实现
当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。在指定的消息处理函效中加入下列语句,则
程序在收到该条消息后即执行窗口最小化。
WINDOWPLACEMENT lwndpl;
WINDOWPLACEMENT * lpwndpl;
lpwndpl=&lwndpl;
GetWindowPlacement(lpwndpl);
lpwndpl-$#@62;showCmd=SW_SHOWMINIMIZED;
SetWindowPlacement(lpwndpl);
函数BOOL GetWindowPlacement(WINDOWPLACEMENT * lpwndpl) const的作用为获取表示当前窗口的布局的结构WINDOWPLACEMENT的结构变量指针。结构WINDOWPLACEMENT定义为:
typedef struct tagWINDOWPLACEMENT {/* wndpl * / UINT length;
UINT flags;
UINT showCmd;
POINT ptMinPosition;
POINT ptMaxPosition;
RECT rcNormalPosition;
} WINDOWPLACEMENT;
其中的成员变量showCmd确定当前窗口的状态。其取值一般为:
SW_HIDE隐藏窗口。SW_MINIMIZE最小化指定的窗口。SW_RESTORE将最大化或最小化的窗口恢复原来大小。SW_SHOW以原来的大小激话并显示窗口。SW_SHOWMAXIMIZED激活并最大化窗口。函数BOOL SetWindowPlacement(const WINDOWPLACEMENT * lpwndpl)作用为按结构MENT的设置显示窗口。
6.OCX控件的使用
VC++的初学者可能会很羡慕VB或是C++Builder中那多得令人眼花缭乱且使用方便的控件。其实,VC++中可使用的控件更多,只不过在通常的主界面上看不到而已。如果打开Project菜单,选择Add To Project选项,在随后出现的子菜单中,选择Components And Controls,随后就可在Components andControls Gallery对话框