十五、设置控件字体颜色:(例如STATIC控件)
在OnCtlColor函数中添加如下代码:(可能需要选择STATIC的简单属性)
其他控件的宏定义为:
.CTLCOLOR_BTN 按钮控件
.CTLCOLOR_DLG 对话框
.CTLCOLOR_EDIT 编辑框
.CTLCOLOR_LISTBOX 列表控件
.CTLCOLOR_MSGBOX 消息控件
.CTLCOLOR_SCROLLBAR 滚动条控件
.CTLCOLOR_STATIC 静态控件
十六、将字符转换为数字:
int i = atoi("12345"); 或 sscanf("12345","%d",&i);
十七、调用外部应用程序可使用的函数:
CreateProcess、WinExec、ShellExecute。
例:ShellExecute(pWnd->m_wnd, "open", "my.exe", NULL, NULL, SW_NORMAL)
1、父窗体句柄,2、命令"open",3、文件路径,4、参数,5、运行路径,6、显示方式
十八、经典安装程序制作软件:InstallShield for Microsoft Visual C++6.0
release 方式是在build菜单中的Set Active configuration中改
在project菜单里面,选Add to Project的component and control来加入ocx控件
十九、控件的注册:
1.注册
regsvr32 x:/xxx/demo.ocx 不一定非得在 Windows 系统目录
2.卸载
regsvr32 /u x:/xxx/demo.ocx
二十、获取当前时间:
二一、修改单文档程序的标题:
OnCreat()中加入 SetWindowText("weichao");
CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中加入 cs.style =WS_OVERLAPPEDWINDOW;
二二、隐藏程序在任务栏的图标:
对话框程序放OnInitDialog()函数:
SetWindowLong(this->m_hWnd,GWL_EXSTYLE,WS_EX_TOOLWINDOW);//隐藏任务拦按钮
二三、读取编辑框内容:
GetDlgItemText(IDC_EDIT_TXDATA,m_strTXData);
二四、自绘菜单宽度不对,高度是对的,解决办法:
在ClassWizard中的ClassName下,选CMianFrame,在Messages下选WM_CONTEXTMENU并生成相应的函数,如下:
void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);//IDR_MENU1是你要弹出菜单的ID号.
CMenu *popup=menu.GetSubMenu(0);
popup->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
}
二五、重启计算机:
调用一个API函数ExitWindowsEx就可以了,
两个参数:UFlag,标记,可以选择EWX_REBOOT,EWX_SHUTDOWN,EWX_POWEROFF再或上EWX_FORCE第二个参数就是0了
二六、无title对话框的移动:
void CScreenSnapDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
//实现窗体无标题移动
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
CDialog::OnLButtonDown(nFlags, point);
}
二七、获取操作系统版本:
OSVERSIONINFO OsVersionInfo;//包含操作系统版本信息的数据结构
OsVersionInfo.dwOSVersionInfoSize= sizeof(OSVERSIONINFO);
GetVersionEx(&OsVersionInfo);//获取操作系统版本信息
二八、设置对话框为最顶层:(在OnInitDialog中添加)
SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
二九、对话框程序不在任务栏显示:(在OnInitDialog中添加)
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
三十、向对话框窗口添加右键菜单:
CMenu menu,*pmenu;
menu.LoadMenu(IDR_MENU1);
pmenu=menu.GetSubMenu(0);
CPoint ptScreen(point);
ClientToScreen(&ptScreen);
pmenu->TrackPopupMenu(TPM_RIGHTBUTTON,ptScreen.x,ptScreen.y,this);
三一、文件查找:(例查找连续的换行符)
三二、托盘菜单不点击不能消失的解决办法:
在菜单之后使用下述代码:
三三、对话框由小到大显示的动画效果:
在InitDialog中增加:
三四、按行读出文本文件:
下面的例子演示了一行一行取,直到取完。
三五、使用IDC_HAND时提示未定义,加入以下代码:
#if(WINVER >= 0x0500)
#define IDC_HAND MAKEINTRESOURCE(32649)
#endif /* WINVER >= 0x0500 */
三六、使应用程序启动时不自动创建新文档
在默认情况下,用AppWizard开发的SDI/MDI应用程序在启动时创建一个新的文档。如果要使应用程序在启动时不创建新
文档,只需在应用类CmyApp::InitInstance()函数的ProcessShellCommand调用前加上下面的语句就可以了:
cmdInfo.m_nShellCommand = CComandLineInfo::FileNothing;
三七、播放mp3:
三八、获取屏幕RGB值:OnTimer中添加
三九、打开一个网址:
打开http://www.sina.com.cn这个站点如下:
ShellExecute(NULL, "open", "http://www.sina.com.cn",NULL, NULL, SW_MAXIMIZE );
此命令将以默认浏览器打开http://www.sina.com.cn,并将加开后的窗口最大化。
又例:
ShellExecute(NULL, "open", "IEXPLORE.exe http://www.sina.com.cn",NULL, NULL,
SW_MAXIMIZE );
此命令将直接用IE打开一个sina的站点。不过将开一个新的窗口。
四十、位图按钮:
CButton *pRadio = (CButton*)GetDlgItem(IDC_RADIO);
pRadio->SetBitmap(::LoadBitmap(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP)));
26..Dll调用
27.透明窗口
28.去掉Dialog标题栏
ModifyStyle( WS_CAPTION, WS_MINIMIZEBOX, SWP_DRAWFRAME );
设置鼠标:
BOOL CPartTransparentDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1));
return TRUE;
}
拖动窗口,在OnLButtonDown时调用
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y));
29.启动程序
::ShellExecute(NULL,"open","http://www.tomcom",NULL,NULL,SW_SHOWNORMAL);
30. 获取系统信息
31. 如何去掉CStatic讨厌的背景颜色
重载WM_CTLCOLOR,同时将static的属性设置为TRANSPARENT
32. 窗口总在最前
::SetWindowPos(m_wndMsn.GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
33. 获取本机IP