您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BeginPaint函数代码示例

51自学网 2021-06-01 19:54:55
  C++
这篇教程C++ BeginPaint函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BeginPaint函数的典型用法代码示例。如果您正苦于以下问题:C++ BeginPaint函数的具体用法?C++ BeginPaint怎么用?C++ BeginPaint使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BeginPaint函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: MyWinFunc

/* Window message handle function */LRESULT CALLBACK MyWinFunc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ){  INT i;  HDC hDC;  PAINTSTRUCT ps;  static INT w, h;  static BITMAP bm;  static HBITMAP hBm, hBmLogo;  static HDC hMemDC, hMemDCLogo;  switch (Msg)  {  case WM_CREATE:    SetTimer(hWnd, 30, 10, NULL);    hBmLogo = LoadImage(NULL, "GLOBE.BMP", IMAGE_BITMAP, 0, 0,        LR_LOADFROMFILE);    GetObject(hBmLogo, sizeof(bm), &bm);    hDC = GetDC(hWnd);    hMemDC = CreateCompatibleDC(hDC);    hMemDCLogo = CreateCompatibleDC(hDC);    SelectObject(hMemDCLogo, hBmLogo);    ReleaseDC(hWnd, hDC);    return 0;  case WM_SIZE:    w = LOWORD(lParam);    h = HIWORD(lParam);    if (hBm != NULL)      DeleteObject(hBm);    hDC = GetDC(hWnd);    hBm = CreateCompatibleBitmap(hDC, w, h);    ReleaseDC(hWnd, hDC);    SelectObject(hMemDC, hBm);    SendMessage(hWnd, WM_TIMER, 0, 0);    return 0;  case WM_TIMER:    Rectangle(hMemDC, 0, 0, w + 1, h + 1);    /*    BitBlt(hMemDC, 0, 0, bm.bmWidth, bm.bmHeight,      hMemDCLogo, 0, 0, SRCCOPY);    */    SetStretchBltMode(hMemDC, COLORONCOLOR);    StretchBlt(hMemDC, 0, 0, w, h,      hMemDCLogo, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY);    DrawEye(hWnd, hMemDC, 100, 100, 50, 15);    DrawEye(hWnd, hMemDC, 300, 200, 150, 30);    DrawEye(hWnd, hMemDC, 100, 200, 50, 30);    DrawEye(hWnd, hMemDC, 400, 200, 130, 30);    DrawEye(hWnd, hMemDC, w / 2, h / 2, 80, 15);    srand(59);    for (i = 0; i < 30; i++)      DrawEye(hWnd, hMemDC, rand() % 800, rand() % 700, 30, 8);    SetBkMode(hMemDC, TRANSPARENT);    SetTextColor(hMemDC, RGB(255, 0, 0));    TextOut(hMemDC, 30, 30, "30!", 3);    InvalidateRect(hWnd, NULL, FALSE);    return 0;  case WM_PAINT:    hDC = BeginPaint(hWnd, &ps);    BitBlt(hDC, 0, 0, w, h, hMemDC, 0, 0, SRCCOPY);    EndPaint(hWnd, &ps);    return 0;  case WM_DESTROY:    KillTimer(hWnd, 30);    DeleteDC(hMemDC);    DeleteObject(hBm);    PostQuitMessage(0);    return 0;  }  return DefWindowProc(hWnd, Msg, wParam, lParam);} /* End of 'MyWinFunc' function */
开发者ID:CGSG,项目名称:SUM2016,代码行数:73,


示例2: WndProc

//.........这里部分代码省略.........                    FocusedConsole = SearchConsole(LastConsole);                    if (FocusedConsole != NULL &&                        FocusedConsole->hConsole != NULL) {                        FocusedConsole->Enable = FALSE;                        EnableWindow(FocusedConsole->hWndCon,FALSE);                        gfDoNotKillFocus = TRUE;                    }                }                else{                    DWORD i;                    LockConsoleTable();                    for ( i = 1; i < NumberOfConsoleTable; i ++){                        FocusedConsole = ConsoleTable[i];                        if (FocusedConsole != NULL)                        {                            if ((FocusedConsole->hConsole != NULL)&&                                (!FocusedConsole->Enable)&&                                (!IsWindowEnabled(FocusedConsole->hWndCon))){                                EnableWindow(FocusedConsole->hWndCon,TRUE);                                FocusedConsole->Enable = TRUE;                                if (!FocusedConsole->LateRemove)                                    SetForegroundWindow(FocusedConsole->hWndCon);                            }                        }                    }                    UnlockConsoleTable();                }                return DefWindowProc(hWnd, Message, wParam, lParam);                break;            }#ifdef DEBUG_MODE            case WM_SETFOCUS:                CreateCaret( hWnd,                             NULL,                             IsUnicodeFullWidth( ConvertLine[xPos] ) ?                             CaretWidth*2 : CaretWidth,                             (UINT)cyMetrics );                SetCaretPos( xPos * cxMetrics, 0 );                ShowCaret( hWnd );                break;            case WM_KILLFOCUS:                HideCaret( hWnd );                DestroyCaret();                break;            case WM_PAINT:                {                    PAINTSTRUCT pstruc;                    HDC  hDC;                    hDC = BeginPaint(hWnd,&pstruc);                    ReDraw(hWnd);                    EndPaint(hWnd,&pstruc);                    break;                }#endif            case WM_QUERYENDSESSION:#ifdef HIRSHI_DEBUG                /*                 * If specified ntsd debugger on this process,                 * then never catch WM_QUERYENDSESSION when logoff/shutdown because                 * this process will terminate when ntsd process terminated.                 */                {                    int i;                    i = MessageBox(hWnd,TEXT("Could you approve exit session?"), TEXT("Console IME"),                                   MB_ICONSTOP | MB_YESNO);                    return (i == IDYES ? TRUE : FALSE);                }#endif                return TRUE;           // Logoff or shutdown time.            case WM_ENDSESSION:                DBGPRINT(("CONIME:Recieve WM_ENDSESSION/n"));                ExitList(hWnd);                return 0;            default:          // Passes it on if unproccessed                return DefWindowProc(hWnd, Message, wParam, lParam);        }    } except (InputExceptionFilter(GetExceptionInformation())) {        if (dwConsoleThreadId)        {            DBGPRINT(("CONIME: Exception on WndProc!!/n"));            UnregisterConsoleIME();            dwConsoleThreadId = 0;            DestroyWindow(hWnd);            return 0;        }    }    return TRUE;}
开发者ID:conioh,项目名称:os-design,代码行数:101,


示例3: switch

LRESULT debugwin_info::window_proc(UINT message, WPARAM wparam, LPARAM lparam){	// handle a few messages	switch (message)	{	// paint: draw bezels as necessary	case WM_PAINT:		{			PAINTSTRUCT pstruct;			HDC dc = BeginPaint(m_wnd, &pstruct);			draw_contents(dc);			EndPaint(m_wnd, &pstruct);			break;		}	// keydown: handle debugger keys	case WM_KEYDOWN:		if (handle_key(wparam, lparam))			set_ignore_char_lparam(lparam);		break;	// char: ignore chars associated with keys we've handled	case WM_CHAR:		if (check_ignore_char_lparam(lparam))		{			if (waiting_for_debugger() || !seq_pressed())				return DefWindowProc(m_wnd, message, wparam, lparam);		}		break;	// activate: set the focus	case WM_ACTIVATE:		if (wparam != WA_INACTIVE)			set_default_focus();		break;	// get min/max info: set the minimum window size	case WM_GETMINMAXINFO:		{			MINMAXINFO *minmax = (MINMAXINFO *)lparam;			minmax->ptMinTrackSize.x = m_minwidth;			minmax->ptMinTrackSize.y = m_minheight;			minmax->ptMaxSize.x = minmax->ptMaxTrackSize.x = m_maxwidth;			minmax->ptMaxSize.y = minmax->ptMaxTrackSize.y = m_maxheight;			break;		}	// sizing: recompute child window locations	case WM_SIZE:	case WM_SIZING:		recompute_children();		InvalidateRect(m_wnd, NULL, FALSE);		break;	// mouse wheel: forward to the first view	case WM_MOUSEWHEEL:		{			static int units_carryover = 0;			UINT lines_per_click;			if (!SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &lines_per_click, 0))				lines_per_click = 3;			int const units = GET_WHEEL_DELTA_WPARAM(wparam) + units_carryover;			int const clicks = units / WHEEL_DELTA;			units_carryover = units % WHEEL_DELTA;			int const delta = clicks * lines_per_click;			int viewnum = 0;			POINT point;			// figure out which view we are hovering over			GetCursorPos(&point);			ScreenToClient(m_wnd, &point);			HWND const child = ChildWindowFromPoint(m_wnd, point);			if (child)			{				for (viewnum = 0; viewnum < MAX_VIEWS; viewnum++)				{					if ((m_views[viewnum] != NULL) && m_views[viewnum]->owns_window(child))						break;				}				if (viewnum == MAX_VIEWS)					break;			}			// send the appropriate message to this view's scrollbar			if (m_views[viewnum] != NULL)				m_views[viewnum]->send_vscroll(delta);			break;		}	// activate: set the focus	case WM_INITMENU:		update_menu();		break;	// command: handle a comment	case WM_COMMAND://.........这里部分代码省略.........
开发者ID:robsonfr,项目名称:mame,代码行数:101,


示例4: WinProc

LRESULT CALLBACK WinProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) {    PAINTSTRUCT Ps;	switch(msg) {    case WM_CREATE: {		    /**		    * Create AddFood Button            */            HFONT hFont = CreateFont(30,0,0,0,FW_DONTCARE,FALSE,TRUE,FALSE,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,                CLIP_DEFAULT_PRECIS,NULL, VARIABLE_PITCH,TEXT("Impact"));            HWND hButtonAddFood = CreateWindowEx(NULL,                "BUTTON",                "ADD FOOD",                WS_TABSTOP|WS_VISIBLE|                WS_CHILD|BS_DEFPUSHBUTTON|BS_TOP,                10,                150,                100,                25,                hWnd,                (HMENU)BUTTON_ADD_FOOD,                GetModuleHandle(NULL),                NULL);            /**            * Create button ShowFoodNumber            */            HWND hShowFoodNumber = CreateWindowEx(NULL,                "BUTTON",                "Funny",                WS_TABSTOP|WS_VISIBLE|                WS_CHILD|BS_DEFPUSHBUTTON|BS_TOP,                10,                180,                300,                40,                hWnd,                (HMENU)BUTTON_DISPLAY_FOOD_NR,                GetModuleHandle(NULL),                NULL);            SendMessage (hShowFoodNumber, WM_SETFONT, WPARAM (hFont), TRUE);            /**            * Draw Food List (In a input box)            */            hFoodList = CreateWindowEx(WS_EX_CLIENTEDGE,                "EDIT",                "",                WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_READONLY|                ES_MULTILINE,                10,                40,                300,                100,                hWnd,                (HMENU)INPUT_TEXT_SHOW_FOOD,                GetModuleHandle(NULL),                NULL);            /**            * Draw main Input food field            */            hInputFood = CreateWindowEx(                (DWORD)NULL,                TEXT("edit"),                "",                WS_VISIBLE | WS_CHILD | WS_BORDER,                120,                150,                190,                25,                hWnd,                (HMENU)INPUT_TEXT_ADD_FOOD,                GetModuleHandle(NULL),                NULL);        }        break;		case WM_PAINT: {            HDC hdc = BeginPaint(hWnd, &Ps);            RECT rect;            /**            * Draw Text            */            // Second Text            char foodNrMessage[256] = "Number : ";            char nr[50];            strcat(foodNrMessage, itoa(foodNumber, nr, 10));            SetBkMode(hdc, TRANSPARENT);            SetRect(&updateRect, 210, 10, 300, 30);            DrawText( hdc, foodNrMessage, -1, &updateRect, DT_SINGLELINE | DT_NOCLIP  ) ;            // First Text            HFONT hFont = CreateFont(25,0,0,0,FW_DONTCARE,FALSE,TRUE,FALSE,DEFAULT_CHARSET,OUT_OUTLINE_PRECIS,//.........这里部分代码省略.........
开发者ID:TUM-FAF,项目名称:WP-FAF-111-Terman-Sergiu,代码行数:101,


示例5: WndProc

// Processes messages for main WindowLRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam){    PTOUCHINPUT pInputs;    TOUCHINPUT tInput;    HTOUCHINPUT hInput;    int iNumContacts;    POINT ptInputs;    PAINTSTRUCT ps;    // Handle each type of inData and based on which event we handle continue processing    // the inData for manipulations by calling the ComTouchDriver        switch (msg)    {    case WM_TOUCH:        iNumContacts = LOWORD(wParam);        hInput = (HTOUCHINPUT)lParam;        pInputs = new (std::nothrow) TOUCHINPUT[iNumContacts];               // Get each touch input info and feed each TOUCHINPUT into the process input handler        if(pInputs != NULL)        {            if(GetTouchInputInfo(hInput, iNumContacts, pInputs, sizeof(TOUCHINPUT)))            {               for(int i = 0; i < iNumContacts; i++)               {                   // Bring touch input info into client coordinates                   ptInputs.x = pInputs[i].x/100;	                   ptInputs.y = pInputs[i].y/100;                   ScreenToClient(g_hWnd, &ptInputs);                   pInputs[i].x = ptInputs.x;                   pInputs[i].y = ptInputs.y;                   g_ctDriver->ProcessInputEvent(&pInputs[i]);               }               g_ctDriver->ProcessChanges();            }        }                delete [] pInputs;        CloseTouchInputHandle(hInput);        break;        // For each Mouse event build a TOUCHINPUT struct and feed into the process input handler    case WM_LBUTTONDOWN:        FillInputData(&tInput, MOUSE_CURSOR_ID, TOUCHEVENTF_DOWN, (DWORD)GetMessageTime(),LOWORD(lParam),HIWORD(lParam));        g_ctDriver->ProcessInputEvent(&tInput);                break;    case WM_MOUSEMOVE:        if(LOWORD(wParam) == MK_LBUTTON)        {            FillInputData(&tInput, MOUSE_CURSOR_ID, TOUCHEVENTF_MOVE, (DWORD)GetMessageTime(),LOWORD(lParam), HIWORD(lParam));            g_ctDriver->ProcessInputEvent(&tInput);                  g_ctDriver->ProcessChanges();        }              break;    case WM_LBUTTONUP:        FillInputData(&tInput, MOUSE_CURSOR_ID, TOUCHEVENTF_UP, (DWORD)GetMessageTime(),LOWORD(lParam), HIWORD(lParam));        g_ctDriver->ProcessInputEvent(&tInput);                break;    case WM_DESTROY:                if(g_ctDriver)        {            delete g_ctDriver;        }        PostQuitMessage(0);        return 1;    case WM_SIZE:        g_iCWidth = LOWORD(lParam);        g_iCHeight = HIWORD(lParam);        break;    case WM_PAINT:                BeginPaint(g_hWnd, &ps);        g_ctDriver->RenderInitialState(g_iCWidth, g_iCHeight);        EndPaint(g_hWnd, &ps);        break;    case WM_TIMER:        g_ctDriver->ProcessChanges();        break;          default://.........这里部分代码省略.........
开发者ID:FrankAlbis,项目名称:Win7_SDK_Samples,代码行数:101,


示例6: WndProc

//.........这里部分代码省略.........          if (wmId == ID_WARN_DOWNLOADCOMPLETE)            ss << L"downloaded successfully.";          else            ss << L"failed to download.";          MessageBox(hWnd, ss.str().c_str(), L"File Download",              MB_OK | MB_ICONINFORMATION);        }        return 0;#ifdef SHOW_TOOLBAR_UI      case IDC_NAV_BACK:   // Back button        if (browser.get())          browser->GoBack();        return 0;      case IDC_NAV_FORWARD:  // Forward button        if (browser.get())          browser->GoForward();        return 0;      case IDC_NAV_RELOAD:  // Reload button        if (browser.get())          browser->Reload();        return 0;      case IDC_NAV_STOP:  // Stop button        if (browser.get())          browser->StopLoad();        return 0;#endif // SHOW_TOOLBAR_UI      }      break;    }    case WM_PAINT:      hdc = BeginPaint(hWnd, &ps);      EndPaint(hWnd, &ps);      return 0;    case WM_SETFOCUS:      if (g_handler.get() && g_handler->GetBrowser()) {        // Pass focus to the browser window        CefWindowHandle hwnd =            g_handler->GetBrowser()->GetHost()->GetWindowHandle();        if (hwnd)          PostMessage(hwnd, WM_SETFOCUS, wParam, NULL);      }      return 0;    case WM_SIZE:      // Minimizing resizes the window to 0x0 which causes our layout to go all      // screwy, so we just ignore it.      if (wParam != SIZE_MINIMIZED && g_handler.get() &&          g_handler->GetBrowser()) {        CefWindowHandle hwnd =            g_handler->GetBrowser()->GetHost()->GetWindowHandle();        if (hwnd) {          // Resize the browser window and address bar to match the new frame          // window size          RECT rect;          GetClientRect(hWnd, &rect);#ifdef SHOW_TOOLBAR_UI          rect.top += URLBAR_HEIGHT;          int urloffset = rect.left + BUTTON_WIDTH * 4;#endif // SHOW_TOOLBAR_UI          HDWP hdwp = BeginDeferWindowPos(1);
开发者ID:David-Mulder,项目名称:brackets-shell,代码行数:67,


示例7: _ASSERTE

/** * @param hwnd - window handle. * @param uMsg - message identifier. * @param wParam - first message parameter. * @param lParam - second message parameter. */LRESULT CALLBACK CSplitter::SplitterWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){	int x, y, nSplitterPos, nSplitterSize;	POINT point;	HCURSOR hCursor;	PAINTSTRUCT ps;	HDC hdc;	DWORD dwResult;	CSplitter* _this  = (CSplitter*)GetWindowLongPtr(hwnd, GWL_USERDATA);	_ASSERTE(_this != NULL);	switch(uMsg)	{	case WM_NCHITTEST:		if (GetCapture() == hwnd)			return HTCLIENT;		point.x = GET_X_LPARAM(lParam);		point.y = GET_Y_LPARAM(lParam);		ScreenToClient(hwnd, &point);		return (_this->HitTest(point) ? HTCLIENT : HTTRANSPARENT);	case WM_SETCURSOR:		_ASSERTE(g_pResManager != NULL);		dwResult = GetMessagePos();		point.x = GET_X_LPARAM(dwResult);		point.y = GET_Y_LPARAM(dwResult);		ScreenToClient(hwnd, &point);		if (_this->HitTest(point))			hCursor = _this->m_eDirection == SD_VERTICAL ? g_pResManager->m_hUpDownCursor : g_pResManager->m_hLeftRightCursor;		else			hCursor = g_pResManager->m_hArrowCursor;		if (hCursor)		{			SetCursor(hCursor);			return TRUE;		}		return FALSE;	case WM_LBUTTONDOWN:		if (GetCapture() != hwnd)		{			x = GET_X_LPARAM(lParam);			y = GET_Y_LPARAM(lParam);			if (_this->HitTest(x, y))				SetCapture(hwnd);		}		return 0;	case WM_MOUSEMOVE:		if (GetCapture() == hwnd)		{			nSplitterPos = _this->m_eDirection == SD_VERTICAL ? GET_Y_LPARAM(lParam) : GET_X_LPARAM(lParam);			_this->SetSplitterPos(nSplitterPos);		}		return 0;	case WM_LBUTTONUP:		if (GetCapture() == hwnd)			ReleaseCapture();		return 0;	case WM_CAPTURECHANGED:		return 0;	case WM_ERASEBKGND:		return TRUE;	case WM_SIZE:		nSplitterSize = _this->m_eDirection == SD_VERTICAL ? GET_Y_LPARAM(lParam) : GET_X_LPARAM(lParam);		_this->ResizeSplitter(nSplitterSize);		return 0;	case WM_PAINT:		hdc = (HDC)wParam;		if (! hdc)		{			hdc = BeginPaint(hwnd, &ps);			if (hdc)			{				_this->DrawSplitter(hdc);				EndPaint(hwnd, &ps);			}		}		else			_this->DrawSplitter(hdc);		return 0;	case WM_PRINTCLIENT:		hdc = (HDC)wParam;		_this->DrawSplitter(hdc);		return 0;	case WM_GETDLGCODE:		return DLGC_STATIC;	default:		return DefWindowProc(hwnd, uMsg, wParam, lParam);	}}
开发者ID:BeaconDev,项目名称:xray-16,代码行数:94,


示例8: WndProc

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){	PAINTSTRUCT ps;	HDC hdc;	RECT rect;	COLORREF colorText = RGB(0, 0, 255); // задаём цвет текста		switch (message)	{	case WM_COMMAND:	case BN_CLICKED:		if (LOWORD(wParam) == ID_BUTTON1)		{						GetClientRect(hWnd, &rect);			edit1 = CreateWindowEx(				WS_EX_CLIENTEDGE,				L"edit",				L"Нажмите правую клавишу мыши",				WS_CHILD | WS_VISIBLE | EM_FMTLINES,				rect.right / 4,									/*координаты по X*/				rect.bottom / 4,								/*координаты по Y*/				rect.right / 2,									/*Ширина окошка*/				rect.bottom / 2,				hWnd,				(HMENU)ID_EDIT1,				hinst,				NULL);				}				break;	case WM_RBUTTONDOWN:						ShowWindow(edit1, SW_HIDE);			break;	case WM_CREATE:		GetClientRect(hWnd, &rect);						button1 = CreateWindowEx(			WS_EX_CLIENTEDGE,			L"button",			L"Показать",			WS_CHILD | WS_VISIBLE,			rect.right / 2 - ARRAYSIZE(L"Показать") * 4 - 10,		/*координаты по X*/			rect.bottom - 30,						/*координаты по Y*/			ARRAYSIZE(L"Показать") * 10,						/*Ширина окошка*/			25,			hWnd,			(HMENU)ID_BUTTON1,			hinst,			NULL);				break;	case WM_PAINT:		hdc = BeginPaint(hWnd, &ps); // инициализируем контекст устройства		GetClientRect(hWnd, &rect); // получаем ширину и высоту области для рисования		SetTextColor(hdc, colorText); // устанавливаем цвет контекстного устройства								DrawText(hdc, L"В в е д и т е   т е к с т", -1, &rect, DT_SINGLELINE | DT_CENTER); // рисуем текст					break;	case WM_DESTROY:		PostQuitMessage(0);		break;	default:		return DefWindowProc(hWnd, message, wParam, lParam);		break;	}	return 0;}
开发者ID:andrevyakin,项目名称:DZ_05.04.15_3_WinAPI,代码行数:82,


示例9: WinProc

LRESULT CALLBACK WinProc(HWND hWnd,UINT uMsg, WPARAM wParam, LPARAM lParam){   PAINTSTRUCT    ps;    switch (uMsg)	{     case WM_SIZE:										// If the window is resized		if(!g_bFullScreen)								// Do this only if we are NOT in full screen		{			SizeOpenGLScreen(LOWORD(lParam),HIWORD(lParam));// LoWord=Width, HiWord=Height			GetClientRect(hWnd, &g_rRect);				// Get the window rectangle		}        break;  	case WM_PAINT:										// If we need to repaint the scene		BeginPaint(hWnd, &ps);							// Init the paint struct				EndPaint(hWnd, &ps);							// EndPaint, Clean up		break;//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////	// Below we define our controls for this simple tutorial.	// The controls are: 	// Left Mouse Button - Changes the Render mode from normal to wireframe.	// Right Mouse Button - Turns lighting On/Off	// Left Arrow Key - Spins the model to the left	// Right Arrow Key - Spins the model to the right	// Escape - Quits	case WM_LBUTTONDOWN:								// If the left mouse button was clicked				if(g_ViewMode == GL_TRIANGLES) {				// We our drawing mode is at triangles			g_ViewMode = GL_LINE_STRIP;					// Go to line strips		} else {			g_ViewMode = GL_TRIANGLES;					// Go to triangles		}		break;	case WM_RBUTTONDOWN:								// If the right mouse button was clicked.				g_bLighting = !g_bLighting;						// Turn lighting ON/OFF		if(g_bLighting) {								// If lighting is ON			glEnable(GL_LIGHTING);						// Enable OpenGL lighting		} else {			glDisable(GL_LIGHTING);						// Disable OpenGL lighting		}		break;	case WM_KEYDOWN:									// If we pressed a key		switch(wParam) {								// Check if we hit a key			case VK_ESCAPE:								// If we hit the escape key				PostQuitMessage(0);						// Send a QUIT message to the window				break;			case VK_LEFT:								// If the LEFT arrow key was pressed				g_RotationSpeed -= 0.05f;				// Decrease the rotation speed (eventually rotates left)				break;			case VK_RIGHT:								// If the RIGHT arrow key is pressed				g_RotationSpeed += 0.05f;				// Increase the rotation speed (rotates right)				break;		}		break;//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////    case WM_CLOSE:										// If the window is being closed        PostQuitMessage(0);								// Send a QUIT Message to the window        break;          default:											// Return by default        return DefWindowProc (hWnd, uMsg, wParam, lParam);     }      return 0;											// If we handled the messge return 0}
开发者ID:88er,项目名称:tutorials,代码行数:80,


示例10: MsgBoxDlgProc

BOOL CALLBACK MsgBoxDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam){MBDATA * pMbd;	switch (uMsg)		{		//  center in parent but on screen if hWndPar != NULL		case WM_INITDIALOG : {			CRect rWin;			GetClientRect (hDlg, &rWin);			ASSERT ((rWin.left == 0) && (rWin.top == 0));			HWND hWndPar = GetParent (hDlg);			if (hWndPar == NULL)				rWin += CPoint ((GetSystemMetrics (SM_CXSCREEN) - rWin.Width ()) / 2,										(GetSystemMetrics (SM_CYSCREEN) - rWin.Height ()) / 2);			else			  {			  CRect rPar;				GetWindowRect (hWndPar, &rPar);				rWin += CPoint (rPar.left + (rPar.Width () - rWin.Width ()) / 2,										rPar.top + (rPar.Height () - rWin.Height ()) / 2);				if (rWin.left < 0)					rWin += CPoint (- rWin.left, 0);				else					if (rWin.right > GetSystemMetrics (SM_CXSCREEN))						rWin -= CPoint (rWin.right - GetSystemMetrics (SM_CXSCREEN), 0);				if (rWin.top < 0)					rWin += CPoint (0, - rWin.top);				else					if (rWin.bottom > GetSystemMetrics (SM_CYSCREEN))						rWin -= CPoint (0, rWin.bottom - GetSystemMetrics (SM_CYSCREEN));			  }			SetWindowPos (hDlg, NULL, rWin.left, rWin.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER);			} // NO BREAK - falls through		case WM_ACTIVATE :		case WM_ACTIVATEAPP :			hDlgBox = hDlg;			return (TRUE);		case WM_DESTROY :			hDlgBox = NULL;			break;		case WM_PAINT :			pMbd = (MBDATA *) GetWindowLong (hDlg, DWL_USER);			if ((pMbd == NULL) || (pMbd->hIcon == NULL))				break;			PAINTSTRUCT ps;			BeginPaint (hDlg, &ps);			DrawIcon (ps.hdc, pMbd->iXicon, pMbd->iYicon, pMbd->hIcon);			EndPaint (hDlg, &ps);			return (TRUE);		case WM_COMMAND :			if ((LOWORD (lParam) == 0) || (HIWORD (lParam) != BN_CLICKED))				break;			if ((pMbd = (MBDATA *) GetWindowLong (hDlg, DWL_USER)) == NULL)				break;			// check for help			if (wParam == pMbd->wHelpBtn)			  {				const char *pHelpFile;				char sName[130];				CWinApp *pApp = AfxGetApp ();				if (pApp != NULL)					pHelpFile =	pApp->m_pszHelpFilePath;				else				  {				  GetModuleFileName (AfxGetInstanceHandle (), sName, 128);					int iLen = strlen (sName);					if (iLen < 3)						break;					sName[iLen-3] = 0;					strcat (sName, "HLP");					pHelpFile = sName;				  }				if (pMbd->lHelp == 0)					WinHelp (hDlg, pHelpFile,	HELP_CONTENTS, 0);				else					WinHelp (hDlg, pHelpFile,	HELP_CONTEXT, pMbd->lHelp);			  return (TRUE);			  }			*(pMbd->piRtn) = wParam;			return (TRUE);		}	return (FALSE);}
开发者ID:Marenz,项目名称:EnemyNations,代码行数:93,


示例11: WndProc

////  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)////  PURPOSE:  Processes messages for the main window.////  WM_COMMAND	- process the application menu//  WM_PAINT	- Paint the main window//  WM_DESTROY	- post a quit message and return////LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){	int wmId, wmEvent;	int mX, mY;	PAINTSTRUCT ps;	HDC hdc;	::GetClientRect(hWnd, &winRect);	WorldRenderer worldHandle(hWnd, hdc, winRect, player);	/*	*/	switch (message)	{	case WM_COMMAND:		wmId    = LOWORD(wParam);		wmEvent = HIWORD(wParam);		// Parse the menu selections:		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);		worldHandle.update(playerAct);		EndPaint(hWnd, &ps);		break;			case WM_MOUSEMOVE:		// 
C++ BeginReading函数代码示例
C++ BeginDeferWindowPos函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。