VC雕虫小技集(四)关键字 VC雕虫小技集VC雕虫小技集(四)何志丹 1, 阅读程序常常要看此变量在那些地方值改变过 ctrl+f查找太麻烦 将此变量前加const 改变的地方报错 2, 看一个函数被那些函数调用. 方法: 1,调试状态下,view->debug window->call Stack 2,class view 的快捷菜单中选择called by 3, 在状态栏的最左边显示时间 static UINT indicators[] = { ID_SEPARATOR,//我们增加的 ID_SEPARATOR, ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { ..... m_wndStatusBar.SetPaneInfo(1,ID_SEPARTOR,SBPS_NORMAL,60); } //菜单的响应函数 void CMainFrame::OnTest() { CTime t; t = CTime::GetCurrentTime(); CString str = t.Format("%H - %M -%S"); m_wndStatusBar.SetPaneText(0,str); } 4,模拟鼠标 ::SetCursorPos((int)ptMouse->x,(int)ptMouse->y); ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); 5,什么是WORD, DWORD typedef unsigned short WORD typedef unsigned long DWORD 6,移动控件 CWnd * pWnd = GetDlgItem(IDC_BUTTON1); CRect r; pWnd->GetWindowRect(&r); r.left +=50; r.right += 50; pWnd->MoveWindow(r); 7, 如何让对话框中的CEdit响应ENTER键回车 GetDlgItem(IDC_EDIT1)->SetWindowText("111\r\n22"); 右键属性 sytle -> Multiline选上 最好把want return 也选上 8,将c语言转化为汇编 VC++ provides this feature. Project->Settings... C/C++ tab Category: Choose Listing Files Listing file type: select "Assembly with source code" 9,如何获得进程所消耗的CPU时间? BOOL GetProcessTimes( HANDLE hProcess, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime ); 10,如何通过扩展名得到该扩展名所对应的图标? SHGetFileInfo(path, attr, &sfi, sizeof(SHFILEINFO), SHGFI_USEFILEATTRIBUTES | SHGFI_ICON | SHGFI_TYPENAME); 如何在拉着对话框的边框改变大小时,让它成比例的变化.就像视频播放软件哪样 处理wm_sizing消息 void CTest 1Dlg::OnSizing(UINT fwSide, LPRECT pRect) { CDialog::OnSizing(fwSide, pRect); if((fwSide==WMSZ_BOTTOM) || (fwSide==WMSZ_TOP)) pRect->right=pRect->left+(pRect->bottom-pRect->top)*2; else pRect->bottom=pRect->top+(pRect->right-pRect->left)*0.5; }
|
|||||||