hwndCtrl = GetDlgItem (hDlg, id) ;
id = GetWindowLong (hwndCtrl, GWL_ID) ;
SendDlgItemMessage (hDlg, id, iMsg, wParam, lParam) ;等价
SendMessage (GetDlgItem (hDlg, id), iMsg, wParam, lParam) ;
CheckRadioButton (hDlg, idFirst, idLast, idCheck) ;
CheckDlgButton (hDlg, idCheckbox, iCheck) ;
iCheck = IsDlgButtonChecked (hDlg, idCheckbox) ;
EnableWindow (hwndCtrl, bEnable) ;
hDlgModeless = CreateDialog ( hInstance, szTemplate, hwndParent, DialogProc) ;9 这个函数判断是 hDlgModeless的消息,如果是处理它,返回真,如果不是,不处理,返回false。
IsDialogMessage (hDlgModeless, &msg)
打开和保存对话框 结构体信息 OPENFILENAME 调用函数 打开 GetOpenFileName 保存 GetSaveFileName
打印对话框 结构体信息 PRINTDLG 调用函数 PrintDlg
查找和替换对话框 结构体信息 FINDREPLACE 调用函数 打开 FindText 替换 ReplaceText
18 获得剪切板所有者窗口
GetClipboardOwner19 注册剪切板数据格式20 设置剪切板视图监视窗口RegisterClipboardFormat
SetClipboardViewer
21 创建一个设备上下文句柄,那么删除一个DC是CreateDC,DeleteDC22 打开打印机OpenPriner23 关闭打印机ClosePrinter24 打开打印机属性对话框PrinterProperties25 查询指定的设备描述表信息GetDeviceCaps26 创建一个设备上下文句柄,不能用于绘图CreateIC27 枚举系统打印设备HDC GetPrinterDC (void) { DWORD dwNeeded, dwReturned ; HDC hdc ; PRINTER_INFO_4 * pinfo4 ; PRINTER_INFO_5 * pinfo5 ; if (GetVersion () & 0x80000000) // Windows 98 { EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0, &dwNeeded, &dwReturned) ; pinfo5 = malloc (dwNeeded) ; EnumPrinters (PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo5, dwNeeded, &dwNeeded, &dwReturned) ; hdc = CreateDC (NULL, pinfo5->pPrinterName, NULL, NULL) ; free (pinfo5) ; } else // Windows NT { EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 4, NULL, 0, &dwNeeded, &dwReturned) ; pinfo4 = malloc (dwNeeded) ; EnumPrinters (PRINTER_ENUM_LOCAL, NULL, 4, (PBYTE) pinfo4, dwNeeded, &dwNeeded, &dwReturned) ; hdc = CreateDC (NULL, pinfo4->pPrinterName, NULL, NULL) ; free (pinfo4) ; } return hdc ; }
28 获得系统菜单GetSystemMenu(hwnd,false);
29 获得窗口的DC,包括非客户区。GetWindowDC
30 获得桌面的DC,对应的删除DC是 ReleaseDC(NULL,hdc);HDC hdc = GetDC(GetDesktopWindow () );
HDC hdc = GetDC(NULL );
31 获得字符串的逻辑单位BOOL GetTextExtentPoint32( HDC hdc, // handle to DC LPCTSTR lpString, // text string int c, // characters in string LPSIZE lpSize // string size );
32 设置是否选中菜单DWORD WINAPI CheckMenuItem(
__in HMENU hMenu,
__in UINT uIDCheckItem,
__in UINT uCheck);
33 该函数得到显示设备的一个图形模式设备,通过对该函数一系列的调用可以得到显示设备所有的图形模式信息。The EnumDisplaySettings function sets values for the following five DEVMODE members:
- dmBitsPerPel 显示设备的颜色分辨率(单位:位数);4位16色,8位256色,16位增强色,32位真彩色
- dmPelsWidth 显示宽度以像素为单位
- dmPelsHeight 显示高度以像素为单位
- dmDisplayFlags 显示模式
- dmDisplayFrequency 屏幕的刷新频率
BOOL EnumDisplaySettings( LPCTSTR lpszDeviceName, // display device DWORD iModeNum, // graphics mode LPDEVMODE lpDevMode // graphics mode settings );
34 窗口捕获鼠标, 释放鼠标SetCapture(hwnd);ReleaseCapture(hwnd);
35 获得屏幕DC的扩展函数hdc = GetDCEx (hwndScr, NULL, DCX_CACHE | DCX_LOCKWINDOWUPDATE) ;// 高速缓存和锁定窗口
36 客户区坐标转屏幕坐标ClientToScreen
37 判断剪切板是否有指定的格式IsClipboardFormatAvailable
38 设置窗口背景,图标,光标SetClassLong
39 注册一个消息,然后发送到所以顶层窗口UINT IMsg = RegisterWindowMessage("any string")
PostMessage (HWND_BROADCAST, IMsg, 0, 0) ;