转:MFC 常用语句集锦
在Visual C++6.0的编程中,我们经常要使用许多功能,而在使用这些功能的时候需要使用一些小技巧。下面就是我在编写初级MFC程序的时候总结的部分小知识,供大家参考。
1.动态改变窗口的图标:
HICON hIcon=AfxGetApp()->
LoadIcon (IDI_ICON1);
ASSERT(hIcon);
AfxGetMainWnd()->SendMessage(WM_SETICON,
TRUE,(LPARAM)hIcon);
2.动态改变鼠标光标。
用户可以使用Windows的标准光标形状,也可以建立自己的鼠标光标形状,方法是插入/新建或者导入已有的光标。
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));//使用标准光标
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1));//使用自绘光标
Windows的标准光标形状部分宏定义()为:
IDC_ARROW 标准光标
IDC_IBEAM I形光标
IDC_WAIT 漏斗光标
IDC_CROSS 十字光标
3.改变窗口的标题:
//改变应用程序的主框架窗口的标题:
AfxGetMainWnd()->
SetWindowText (_T("New Caption"));
//改变MDI子框架窗口的标题:
GetParentFrame()->SetWindowText
(_T("MDI Child Frame New Caption"));
//改变对话框ID为IDC_BUTTON的下压式按钮标题:
GetDlgItem(IDC_BUTTON)->SetWindowText(_T("Button New Caption"));
4.让窗口或MDI窗口已启动就最大化或最小化:
如果是窗口,则需要在 BOOL CSampleApp::InitInstance() 函数中设定m_nCmdShow的取值. m_nCmdShow= SW_SHOWMAXIMIZED;//最大化m_nCmdShow= SW_SHOWMINIMIZED;//最小化
在winuser.h的 ShowWindow()函数宏定义为:
#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
5.在窗口中按住鼠标左键在视图中拖动窗口.
在CVIEW::OnLButtonDown()中添加如下代码:
GetParentFrame()-> PostMessae(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x ,point.y )
);
6.结束应用程序
AfxGetMainWnd()->SendMessage(WM_CLOSE);
7.确定应用程序的路径
TCHAR exeFullPath[MAX_PATH];//路径字符数组
GetModuleFileName(NULL,exeFullPath,
MAX_PATH);
8.写状态栏提示另一法
状态栏通常用作消息行(例如,标准的菜单帮助消息行)或者状态指示符(例如,CAP、NUM和SCRL指示符)。
步骤(1).在数组static UINT indicators[] 中添加
ID_SEPARATOR; // status line indicator
(2).在需要改变状态栏提示的地方添加如下代码:
char tbuf[20];
CStatusBar *pStatus=(CStatusBar *)
AfxGetApp()->
m_pMainWnd->
GetDescendantWindow(ID_VIEW_STATUS_BAR);
if(pStatus){ sprintf(tbuf,"%d",
pDoc->m_index); pStatus->SetPaneText(1,tbuf); }
9. 加载其他的应用程序
可以用来加载其他应用程序的函数有WinExex(),ShellExcute()等。
示例:
(1) WinExex()使用比较简单 加载:"c:\\windows\\calc.exe"程序: WinExec("c:\\windows\\calc.exe", SW_SHOWMAXIMIZED); 打开c:\temp\temp1.txt文件: WinExec("c:\\windows\\notepad.exe d:\\temp\\temp.txt", SW_SHOWMAXIMIZED);
(2) ShellExcute()可以指定工作目录。直接打开"c:\temp\text1.txt",而不用加载与txt文件关联的应用程序。 ShellExecute(NULL,NULL, _T("TEMP.txt"),NULL, _T("D:\\YSF"), SW_SHOWMAXIMIZED);
在编程的过程中,可以多打开头文件,看一些函数的原型和参数的使用,可以学到许多课本上学不到的知识。