1:CheckMenuRadioItem:
函数功能:该函数校核一个指定的菜单项并使其成为一个圆按钮项。同时不校核相关组里的其他菜单项并清除这些项的国按钮的类型标志。
函数原型:BOOL CheckMenuRadioItem(HMEN hMENU,UINT idFirst,UINT idLast,UINT idCheck,UINT uFlags);
参数:
hMenu:包含一组菜单项的菜单的句柄。
idFirst:菜单组里第一个菜单项的标识符或位置。
idLast:菜单组里最后一个菜单项的标识符或位置。
idCheck:要选取的菜单项的标识符或位置。
uFlag:指定idFirst,idLast,idCheck含义的值。如果此参数为MF_BYCOMMAND,则其他参数指定菜单项标识符。如果此参数为MF_BYPOSITION,则其他参数指定菜单项位置。
返回值:如果函数调用成功,返回值非零。如果函数调用失败,返回值为零。若想获得更多的错误信息,请调用GetLastError函数。
备注:CheckMenuRadioItem设置了MFT_RADIOCHECK类型标志,并为由idCheck指定的项设置 MFS_CHECKED状态,同时,清除组里所有其他项目的上述两个标志。被选取的项用项目目标表示,而不是用复选标记目标。要得到更多的关于菜单项类型和状态标志的信息,参看MENUITEMINFO结构。
2:BitBlt
该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
hdcDest:指向目标设备环境的句柄。
nXDest:指定目标矩形区域左上角的X轴逻辑坐标。
nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。
nWidth:指定源和目标矩形区域的逻辑宽度。
nHeight:指定源和目标矩形区域的逻辑高度。
hdcSrc:指向源设备环境的句柄。
nXSrc:指定源矩形区域左上角的X轴逻辑坐标。
nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。
dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
3:CreateCompatibleDC
该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。
hdc:现有设备上下文环境的句柄,如果该句柄为NULL,该函数创建一个与应用程序的当前显示器兼容的内存设备上下文环境。
返回值:如果成功,则返回内存设备上下文环境的句柄;如果失败,则返回值为NULL。
Windows NT:若想获得更多错误信息,请调用GetLastError函数。
注释:内存设备上下文环境是仅在内存中存在的设备上下文环境,当内存设备上下文环境被创建时,它的显示界面是标准的一个单色像素宽和一个单色像素高,在一个应用程序可以使用内存设备上下文环境进行绘图操作之前,它必须选择一个高和宽都正确的位图到设备上下文环境中,这可以通过使用CreateCompatibleBitmap函数指定高、宽和色彩组合以满足函数调用的需要。
当一个内存设备上下文环境创建时,所有的特性都设为缺省值,内存设备上下文环境作为一个普通的设备上下文环境使用,当然也可以设置这些特性为非缺省值,得到它的特性的当前设置,为它选择画笔,刷子和区域。
CreateCompatibleDc函数只适用于支持光栅操作的设备,应用程序可以通过调用GetDeviceCaps函数来确定一个设备是否支持这些操作。
当不再需要内存设备上下文环境时,可调用DeleteDc函数删除它。
ICM:如果通过该函数的hdc参数传送给该函数设备上下文环境(Dc)对于独立颜色管理(ICM)是能用的,则该函数创建的设备上下文环境(Dc)是ICM能用的,资源和目标颜色间隔是在Dc中定义
4:CreateCompatibleBitmap
函数功能:该函数创建与指定的设备环境相关的设备兼容的位图。
函数原型:HBITMAP CreateCompatibleBitmap(HDC hdc,int nWidth,int nHeight);
参数:
hdc: 设备环境句柄。
nWidth:指定位图的宽度,单位为像素。
nHeight:指定位图的高度,单位为像素。
返回值:如果函数执行成功,那么返回值是位图的句柄;如果函数执行失败,那么返回值为NULL。若想获取更多错误信息,请调用GetLastError。
备注:由CreateCompatibleBitmap函数创建的位图的颜色格式与由参数hdc标识的设备的颜色格式匹配。该位图可以选入任意一个与原设备兼容的内存设备环境中。由于内存设备环境允许彩色和单色两种位图。因此当指定的设备环境是内存设备环境时,由CreateCompatibleBitmap函数返回的位图格式不一定相同。然而为非内存设备环境创建的兼容位图通常拥有相同的颜色格式,并且使用与指定的设备环境一样的色彩调色板。
5:在写win32的窗口程序时。经常会有这样一个问题。当用系统的方式创建了一个工程后。如果有写程序在窗体用图片替换时不成功。可以去掉
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
然后自己写
hInst = hInstance; // Store instance handle in our global variable
hWnd = CreateWindow(szWindowClass,
szTitle,
WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX,
CW_USEDEFAULT,
0,
446+GetSystemMetrics(SM_CXFRAME),
446+GetSystemMetrics(SM_CYMENU)+GetSystemMetrics(SM_CYFRAME)+GetSystemMetrics(SM_CYCAPTION),
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
但是还是会有个问题当你把界面脱到部分被桌面盖住时发现重绘不起来。
这时要加一个定时器没0.05秒重绘一次
浙公网安备 33010602011771号