关于LOWORD和HIWORD的问题
] ls = FileVersionMS'% (win32api.HIWORD(ms);os.sep) ms = ] version = 'win32apidef getFileVersion(file_name): info = win32api.GetFileVersionInfo(file_name;info[' , win32api.LOWORD(ms), info[', FileVersionLS'%d.%d;win32api.LOWORD(ls)) import return .%d.%04d' win32api.HIWORD(ls),  ...
viewdidunload 什么时候调用
窗口需要重绘时触发,至于什么时候需要重绘这要看窗口控件机制,这是微软封装的,不用你管。
一般情况下,窗口局部被遮挡后又切到前台时,被遮挡的部分要重绘,onpaint此时被触发,用户可以在发生重绘时绘制自己的图形,而且此事件每个可呈现的控件都有。
在MFC中有消息映射,使用向导就可以,C#中在控件的事件列表中双击就会自动创建事件函数。
在win32中在消息处理函数中编写代码LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){int wmId, wmEvent;PAINTSTRUCT ps;HDC hdc;char *p=new char[100];char *c=p;WCHAR *wd=new WCHAR[100];int a;switch (message){case WM_COMMAND:wmId = LOWORD(wParam);wmEvent = HIWORD(wParam);// 分析菜单选择:switch (wmId){case IDM_ABOUT:DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);break;case IDM_EXIT:DestroyWindow(hWnd);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}break;case WM_PAINT:hdc = BeginPaint(hWnd, &ps);// TODO: 在此添加任意绘图代码...EndPaint(hWnd, &ps);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}return 0;
自定义的类中oncmdmsg怎么用
要绘空心的图形 请事先将空刷子选入设备相关部分改了一下case WM_MOUSEMOVE:hdc=GetDC(hWnd);SelectObject(hdc, GetStockObject(NULL_BRUSH));SetROP2(hdc,R2_NOT);if(bDraw==TRUE){if(drawcontrol==1)//rect{//SetROP2(hdc,R2_XORPEN);MoveToEx(hdc,x1,y1,NULL);Rectangle(hdc,x1,y1,x2,y2);x2=LOWORD(lParam);y2=HIWORD(lParam);MoveToEx(hdc,x1,y1,NULL);Rectangle(hdc,x1,y1,x2,y2);SetROP2(hdc,R2_NOT);}else if(drawcontrol==2)//ellipse{//SetROP2(hdc,R2_XORPEN);MoveToEx(hdc,x1,y1,NULL);Ellipse(hdc,x1,y1,x2,y2);x2=LOWORD(lParam);y2=HIWORD(lParam);MoveToEx(hdc,x1,y1,NULL);Ellipse(hdc,x1,y1,x2,y2);}else if(drawcontrol==3)//freeline{MoveToEx(hdc,x1,y1,NULL);x1=LOWORD(lParam);y1=HIWORD(lParam);LineTo(hdc,x1,y1);ReleaseDC(hWnd,hdc);}else if(drawcontrol==4)//line{MoveToEx(hdc,x1,y1,NULL);LineTo(hdc,x2,y2);x2=LOWORD(lParam);y2=HIWORD(lParam);MoveToEx(hdc,x1,y1,NULL);LineTo(hdc,x2,y2);}// "if ..." end here }ReleaseDC(hWnd,hdc); return 0;
代码怎么实现“显示器亮度调节”
VERSION 5.00Begin VB.Form Form1 Caption = "Form1"ClientHeight = 1890ClientLeft = 120ClientTop = 420ClientWidth = 5775LinkTopic = "Form1"ScaleHeight = 1890ScaleWidth = 5775StartUpPosition = 3 '窗口缺省Begin VB.HScrollBar HScroll1 Height = 495Left = 240Max = 255TabIndex = 2Top = 480Value = 128Width = 5295EndBegin VB.CommandButton Command2 Caption = "Exit"Height = 615Left = 2880TabIndex = 1Top = 1080Width = 2655EndBegin VB.CommandButton Command1 Caption = "Reset"Height = 615Left = 240TabIndex = 0Top = 1080Width = 2655EndEndAttribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseOption Explicit'Private Declare Function GetDeviceGammaRamp Lib "GDI32.DLL" (ByVal hDC As Long, lpRamp As Any) As LongPrivate Declare Function SetDeviceGammaRamp Lib "GDI32.DLL" (ByVal hDC As Long, lpRamp As Any) As LongPrivate Type WordHiByte As ByteLoByte As ByteEnd TypePrivate Type DwordHiWord As WordLoWord As WordEnd TypePrivate Type iLongValue As LongEnd TypePrivate Sub Command1_Click()HScroll1.Value = 128End SubPrivate Sub Command2_Click()Unload MeEnd SubFunction SetBrightness(ByVal hDC As Long, ByVal wBrightness As Integer) As LongDim GammaArray(255, 2) As WordDim hGammaDC As Long, nIndex As LongDim wValue As iLong, dValue As DwordhGammaDC = hDC1If hDC = 0 Then hGammaDC = Me.hDC1If hGammaDC ThenFor nIndex = 0 To 255wValue.Value = nIndex * (wBrightness + 128)If wValue.Value > 65533 Then wValue.Value = 65533LSet dValue = wValueGammaArray(nIndex, 0) = dValue.HiWordGammaArray(nIndex, 1) = dValue.HiWordGammaArray(nIndex, 2) = dValue.HiWordNextSetBrightness = SetDeviceGammaRamp(hGammaDC, GammaArray(0, 0))End IfEnd FunctionPrivate Sub Form_Unload(Cancel As Integer)Call Command1_ClickEnd SubPrivate Sub HScroll1_Change()Call SetBrightness(Me.hDC, HScroll1.Value)Me.Caption = HScroll1.ValueEnd Sub
c++中&什么意思
#include LRESULT CALLBACK WinProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); POINT pt={0,0}; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) { HWND hwnd; MSG msg; BOOL bRet; WNDCLASS wndcls; wndcls.style=CS_HREDRAW|CS_VREDRAW; wndcls.lpfnWndProc=WinProc; wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.lpszClassName=TEXT("wjbxngx"); wndcls.lpszMenuName=NULL; wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); wndcls.hInstance=hInstance; RegisterClass(&wndcls); hwnd=CreateWindow(TEXT("wjbxngx"),TEXT("示例"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,600,400,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); while ((bRet=GetMessage(&msg,hwnd,0,0))!=0) { if (bRet==-1) { return -1; } else { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } LRESULT CALLBACK WinProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { HDC hdc; TCHAR szChar[20]; PAINTSTRUCT ps; switch(uMsg) { case WM_CHAR: sprintf(szChar,TEXT("char code is %d"),wParam); MessageBox(hwnd,szChar,TEXT("char"),0); break; case WM_LBUTTONDOWN: pt.x=LOWORD(lParam); pt.y=HIWORD(lParam); break; case WM_RBUTTONDOWN: InvalidateRect(hwnd,NULL,TRUE); break; case WM_MOUSEMOVE: if (wParam&MK_LBUTTON) { hdc=GetDC(hwnd); MoveToEx(hdc,pt.x,pt.y,NULL); LineTo(hdc,LOWORD(lParam),HIWORD(lParam)); pt.x=LOWORD(lParam); pt.y=HIWORD(lParam); ReleaseDC(hwnd,hdc); } break; case WM_PAINT: hdc=BeginPaint(hwnd,&ps); //TextOut(hdc,0,0,TEXT("wjbxngx's house"),lstrlen("wjbxngx's house")); EndPaint(hwnd,&ps); break; case WM_CLOSE: if (IDYES==MessageBox(hwnd,TEXT("真的要退出吗?"),TEXT("信息"),MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; }
转载请注明出处51数据库 » hiword loword