جلسه اول

#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;
}
 برای امروز کافیست. شما می توانید برنامه را بصورت کامل کامپایل کنید و نتیجه را ببینید.
درباره سایر خطوط برنامه جلسه بعد بحث می کنیم.

بنام خدای دانا

بنام خداوند بخشنده و مهربان
این وبلاگ تحت عنوان ویژوال سی شروع به کار کرده امیدوارم مثمر ثمر واقع بشه.
من درس اول را با یک برنامه ساده ولی اساسی شروع می کنم این برنامه که به نسبت هم ساده نیست فقط یک کار می کنه که اونم نمایش یک پنجره ساده است. شاید به نظرتون جالب نیاد چون با ابزارهایی که وجود داره به این کار می خندید ولی مفاهیم این برنامه اساسیه.
 اگر خسته کنندست نگران نباشید چون همین کدهاست که یک برنامه نویس حرفه ای رو متمایز می کنه!!
{
نکته بسیار مهم اینکه شما باید به اندازه کافی با مفاهیم شی گرایی و ++C آشنا باشید و گر نه مطالب اندکی سخت تر به نظرتان خواهد آمد و در مسایل پیچیده تر یادگیری و فهم تا حدودی ناممکن .
یا بطور خلاصه شما باید در موارد  class ها، ارث بری، و توابع virtual کاملا مسلط باشید.
}