جلسه اول

#include
//تعریف در رشته کارکتری
char achWndClass[] = "MIN:MAIN";
char achAppName[] = "Minimum";

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
//هر برنامه وینوز دارای یک تابع به اسم  WinMain است.( مثل برنامه های console که دارای تابع main است )
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 //وقتی برنامه اجرا می شود ویندوز اطلاعاتی درباره آن ئ نیز ارتباط با دیگر برنامه ها می دهد
// پارامتر های فید شده در WinMain  بدین قرارند.
// hInstance به برنامه می گوید که او کیست. این در واقع یک عدد بی علامت یکتاست که خود از نوع HINSTANCE است
// نوع HINSTANCE در windows.h تعریف شده.
// hPrevInstance هم بدر صورت ارتباط با پنجره دیگر مقدار دارد وگرنه NULL است.
// lpCmdLine پارامتری های خط فرمان را می گوید
// nCmdShow وضعیت آغاز پنجره را اعمال می کند.
 MSG msg;
 HWND hWnd;
 WNDCLASS wcex;
 
 if( !hPrevInstance ){
  wcex.style   = NULL;
  wcex.lpfnWndProc = (WNDPROC)WndProc;
  wcex.cbClsExtra  = 0;
  wcex.cbWndExtra  = 0;
  wcex.hInstance  = hInstance;
  wcex.hIcon   = LoadIcon(hInstance, "snapshot");
  wcex.hCursor  = LoadCursor(NULL, "hand");
  wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
  wcex.lpszMenuName = 0;
  wcex.lpszClassName = achWndClass;

     RegisterClass(&wcex);
 }

 hWnd = CreateWindowEx(0L, achWndClass, achAppName,
      WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT,0, NULL, NULL, hInstance, NULL);

 if (!hWnd)
 {
   return FALSE;
 }
    ShowWindow(hWnd, nCmdShow);
  // Main message loop:
 while (GetMessage(&msg, NULL, 0, 0))
 {
  
  {
   TranslateMessage(&msg);
   DispatchMessage(&msg);
  }
 }
 return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
  
 switch (message)
 {
    
  case WM_DESTROY:
   PostQuitMessage(0);
   break;
  default:
   return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
 برای امروز کافیست. شما می توانید برنامه را بصورت کامل کامپایل کنید و نتیجه را ببینید.
درباره سایر خطوط برنامه جلسه بعد بحث می کنیم.

نظرات 1 + ارسال نظر
رضا سه‌شنبه 10 خرداد‌ماه سال 1384 ساعت 10:06 ب.ظ

چه جوری اجرا میشه

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد