一个windows程序简单框架(sdk)

#include <windows.h>

LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPreInstance,
       PSTR szCmdLine, int iCmdShow )
{
  static TCHAR szAppName[] = TEXT( "hellowin" );
  HWND hwnd;
  MSG msg;
  WNDCLASS wndclass;
  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 = ( HBRUSH ) GetStockObject( WHITE_BRUSH );
  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,
   TEXT( "the hello program"),
   WS_OVERLAPPEDWINDOW,
   CW_USEDEFAULT,
   CW_USEDEFAULT,
   CW_USEDEFAULT,
   CW_USEDEFAULT,
   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 )
{
  HDC hdc;
  PAINTSTRUCT ps;
  RECT rect;
  switch ( message )
  {
  case WM_CREATE:
   //PlaySound( TEXT( "hellowin,wav" ), NULL, SND_FILENAME |SND_ASYNC );
        return 0;
  case WM_PAINT:
   hdc = BeginPaint ( hwnd, &ps );

   GetClientRect( hwnd, &rect );

   DrawText( hdc, TEXT( "hello,windows" ), -1, &rect,
    DT_SINGLELINE |DT_CENTER |DT_VCENTER );

   EndPaint( hwnd, &ps );
   return 0;

  case WM_DESTROY:
   PostQuitMessage( 0 );
   return 0;


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值