⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 VC实验 资源在基于SDK的程序设计中的应用 一.实验名称:资源在基于SDK的程序设计中的应用 二.实验目的:掌握各种资源的应用以及资源应用的程序设计方法 三.实验任务: ● 熟悉的菜单资
💻 CPP
字号:

#include <windows.h>


LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

 
HBITMAP hBm;
BITMAP bm;
HDC hDcmem;
int y=80;
int windowwidth,windowheight;
HDC         hDc ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

                    PSTR szCmdLine, int iCmdShow)

{
	
	 hBm = (HBITMAP)LoadImage	
				(hInstance,
				 "Arraw.bmp",
				 IMAGE_BITMAP,	
				 0,	
				 0,	
				 LR_LOADFROMFILE|LR_CREATEDIBSECTION
				);
	 GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);
     windowwidth = 2*bm.bmWidth;
	 windowheight = 2*bm.bmHeight;
	 
     static TCHAR szAppName[] = TEXT ("HelloWin") ;

     HWND         hwnd ;

     MSG          msg ;

     WNDCLASS     wc ;

 

     wc.style         = 0 ;

     wc.lpfnWndProc   = WndProc ;

     wc.cbClsExtra    = 0 ;

     wc.cbWndExtra    = 0 ;

     wc.hInstance     = hInstance ;

     wc.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;

     wc.hCursor       = LoadCursor (NULL, IDC_ARROW) ;

     wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;

     wc.lpszMenuName  = NULL ;

     wc.lpszClassName = szAppName ;

 


     if (!RegisterClass (&wc))

     {

          MessageBox (NULL, TEXT ("This program requires Windows NT!"), 

                      szAppName, MB_ICONERROR) ;

          return 0 ;

     }

     hwnd = CreateWindow (szAppName,                  
                          TEXT ("实验三"), 

                          WS_OVERLAPPEDWINDOW,        

                          CW_USEDEFAULT,              

                          0,              

                          windowwidth,              
                          windowheight,              

                          NULL,                       

                          NULL,                       

                          hInstance,                  

                          NULL) ;                     
     

     ShowWindow (hwnd, iCmdShow) ;

     UpdateWindow (hwnd) ;

     

     while (GetMessage (&msg, NULL, 0, 0))

     {

          TranslateMessage (&msg) ;

          DispatchMessage (&msg) ;

     }

     return msg.wParam ;

}

 

 

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{

    

     PAINTSTRUCT ps ;

     RECT        rect ;

     	

     switch (message)

     {

	 case WM_CREATE:
		 hDc = GetDC(hWnd);
		 hDcmem = CreateCompatibleDC(hDc);
		 ReleaseDC(hWnd,hDc);
 case WM_KEYDOWN:
		 switch (wParam)
		 {
		 case VK_UP: y=y-10;
			 break;
		 case VK_DOWN: y=y+10;
			 break;
		 }
		 InvalidateRect(hWnd,NULL,1);
		 break;
    case WM_LBUTTONDOWN:
		y = y-10;

		InvalidateRect(hWnd,NULL,1);
		 break;
	case WM_RBUTTONDOWN:
		y = y+10;
		InvalidateRect(hWnd,NULL,1);
		 break;
     case WM_PAINT:

          hDc = BeginPaint (hWnd, &ps) ;

          

          GetClientRect (hWnd, &rect) ;

           if(y>0&&y<windowheight/2)
		   {
			   SelectObject(hDcmem,hBm);
			   BitBlt(hDc,windowheight/4,y,bm.bmWidth,bm.bmHeight,hDcmem,0,0,SRCCOPY);
		   }
		   else if(y<0)
		   {
			   TextOut(hDc,0,0,"不能再向上移动了 ",sizeof("不能再向上移动了 "));
			   y = 0;
		   }
		   else 
		   {
			   TextOut(hDc,0,0,"不能再向下移动了 ",sizeof("不能再向下移动了 "));
			   y = windowheight/2;
		   }


        

          EndPaint (hWnd, &ps) ;

          return 0 ;

    

        

     case WM_DESTROY:

          PostQuitMessage (0) ;

          return 0 ;

     }

     return DefWindowProc (hWnd, message, wParam, lParam) ;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -