VC在屏幕中央画出窗口,并输出屏幕的长和宽

   int width = GetSystemMetrics ( SM_CXSCREEN ); 
   int height= GetSystemMetrics ( SM_CYSCREEN );

   int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

   PSTR szCmdLine, int iCmdShow){

  HWND   hwnd ;

  MSG    msg ;

  WNDCLASS wndclass ;

  static TCHAR szAppName[] = TEXT ("HelloWin") ;

  wndclass.style        = CS_HREDRAW | CS_VREDRAW ;

  wndclass.lpfnWndProc  = WndProc ;

  wndclass.cbClsExtra   = 0 ;

  wndclass.cbWndExtra   = 0 ;

  wndclass.hInstance    = hInstance ;

  wndclass.hIcon        = LoadIcon (NULL, IDI_APPLICATION) ;

  wndclass.hCursor      = LoadCursor (NULL, IDC_ARROW) ;

  wndclass.hbrBackground= CreateSolidBrush(RGB(255,255,255));

  wndclass.lpszMenuName  = NULL ;

  wndclass.lpszClassName= szAppName ;


  if (!RegisterClass (&wndclass))

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

    szAppName, MB_ICONERROR) ;

   return 0 ;
  }


   hwnd = CreateWindow( szAppName, // window class name

   NULL, // window caption

   WS_EX_OVERLAPPEDWINDOW, // window style

   width/4,// initial x position

   height/4,// initial y position

   width/2,// initial x size

   height/2,// initial y size

   NULL,                 // parent window handle

   NULL,            // window menu handle

   hInstance,   // program instance handle

   NULL) ;      // creation parameters


    ShowWindow (hwnd, iCmdShow) ;

    UpdateWindow (hwnd) ;

    SetWindowLong(hwnd,GWL_EXSTYLE,GetWindowLong(hwnd,GWL_EXSTYLE)^WS_EX_LAYERED); 
   
    HINSTANCE hInst = GetModuleHandle(TEXT("User32.DLL")); 
    if(hInst)      {   
     typedef BOOL (WINAPI *TestFun)(HWND,COLORREF,BYTE,DWORD);   

    //取得SetLayeredWindowAttributes函数指针  

    TestFun mytest = (TestFun)GetProcAddress(hInst, "SetLayeredWindowAttributes");       
    if(mytest)           
     mytest(hwnd,0,255,LWA_ALPHA);   //第三个参数改为0,便是全透明的窗口
    }

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

    {

     TranslateMessage (&msg) ;

     DispatchMessage (&msg) ;

    }

    return msg.wParam ;
  
}

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

{

 HDC                   hdc ;

 PAINTSTRUCT ps ;

 RECT          rect ;

 switch (message)

 {

 case WM_CREATE:

  return 0 ;

 case   WM_PAINT:

  hdc = BeginPaint (hwnd, &ps) ;

  TCHAR szBuffer[10];

  int iLength, yLength;

  iLength = wsprintf(szBuffer, TEXT("%5d"),width);

  TextOut(hdc, 0, 0, szBuffer, iLength);

  yLength = wsprintf(szBuffer, TEXT("%5d"),height);

  TextOut(hdc, 100, 0, szBuffer, yLength);

  GetClientRect (hwnd, &rect) ;

  EndPaint (hwnd, &ps) ;

  return 0 ;

 case   WM_DESTROY:

  PostQuitMessage (0) ;

  return 0 ;

 }

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

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值