1.打开记事本:
WinExec("notepad.exe",SW_SHOW);
2.打开网页:
ShellExecute(NULL,"open","www.baidu.com",NULL,NULL,SW_SHOWNORMAL);
3.按钮的允许与禁止:
m_Button1.EnableWindow(true);
m_Button1.EnableWindow(false);
4.窗口最大化:
把应用程序类(CApp)的 InitInstance() 中:
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
5.窗口的初始位置:
把应用程序类(CApp)的 InitInstance() 中:
m_pMainWnd->SetWindowPos(NULL,x,y,Width,Height,SWP_SHOWWINDOW);
7.窗口居中:
①在应用程序类(CxxxApp)的 InitInstance() 函数中加入:
②在主框架类(MainFrm.cpp)的OnCreate()函数中加入:
CenterWindow( GetDesktopWindow() );
8.设置文档标题:
在文档类(CxxxDoc)的OnNewDocument()函数中:
SetTitle("文档名");
9.隐藏控件:
CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->ShowWindow( SW_HIDE );
10.改变控件的位置:
CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->MoveWindow( CRect(0,0,100,100) );
或:控件位置和大小都改变
CWnd *pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER );
11.设置程序标题:
在框架类(CMainFrame)的PreCreateWindow()函数中加入语句:
m_strTitle = _T("程序标题");
12.设置对话框背景:
在应用程序类CxxxApp的InitInstance()函数中加入下面的语句:
SetDialogBkColor( RGB(192,248,202) );
13.设置窗体透明:
::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);//TopMost
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hModule=LoadLibrary(_T("User32.DLL"));
if(hModule==NULL)
{
return;
}
typedef BOOL (WINAPI *FN_SetColor)(HWND,COLORREF,BYTE,DWORD);
FN_SetColor SetColor = NULL;
SetColor=(FN_SetColor)GetProcAddress(hModule,"SetLayeredWindowAttributes");
if (SetColor==NULL)
{
return;
FreeLibrary(hModule);
}
SetColor(this->GetSafeHwnd(),0,50,2);
FreeLibrary(hModule);
}
14.全屏幕显示窗体:
void CSetDlg::SetFullScreen()
{
LONG style = ::GetWindowLong(this->m_hWnd,GWL_STYLE);
style &= ~(WS_DLGFRAME | WS_THICKFRAME);
SetWindowLong(this->m_hWnd,GWL_STYLE, style);
this->ShowWindow(SW_SHOWMAXIMIZED);
CRect rect;
this->GetWindowRect(&rect);
::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,rect.left-1, rect.top-1, rect.right-rect.left + 3, rect.bottom-rect.top + 3, SWP_FRAMECHANGED);
}
15.隐藏任务栏:
void CSetDlg::SetTaskBarHide()
{
::SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE, WS_EX_TOOLWINDOW);
}
16.修改注册表让程序自启动:
HKEY hKey; //找到系统的启动项
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; //打开启动项Key
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
if(lRet == ERROR_SUCCESS)
{
char pFileName[MAX_PATH] = {0};
//得到程序自身的全路径
DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);
//添加一个子Key,并设置值 // 下面的"getip"是应用程序名字(不加后缀.exe)
lRet = RegSetValueEx(hKey, "getip", 0, REG_SZ, (BYTE *)pFileName, dwRet); //改下getip为自己的程序名
//关闭注册表
RegCloseKey(hKey);
if(lRet != ERROR_SUCCESS)
{
AfxMessageBox("系统参数错误,不能随系统启动");
}
}
17.注册快捷键:
//添加消息宏:
#define WM_HOTEKEY WM_USER+1
//声明消息函数:
afx_msg void OnHotKey(WPARAM wp,LPARAM lp);
//添加消息队列:
ON_MESSAGE(WM_HOTKEY,OnHotKey)
//定义消息函数:
void CTestDlg::OnHotKey(WPARAM wp, LPARAM lp)
{
if(wp==200)
{
ShowWindow(SW_SHOW);
}
if(wp==300||wp==400)
{
ShellExecute(NULL,"open","www.baidu.com",NULL,NULL,SW_SHOW);
}
}
//OnInitDialog()中加:注册热键
::RegisterHotKey(m_hWnd,200,MOD_CONTROL,'A');
::RegisterHotKey(m_hWnd,300,NULL,'S');
::RegisterHotKey(m_hWnd,400,NULL,'s');
//Ondestroy()中销毁热键:
void CTestDlg::OnDestroy()
{
CDialog::OnDestroy();
::UnregisterHotKey(m_hWnd,200);
::UnregisterHotKey(m_hWnd,300);
}