#include #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wcex; wcex.style = CS_HREDRAW | CS_VREDRAW; // Penceremizin özellikleri. wcex.lpfnWndProc = WndProc; // Penceremizin kullanacağı fonksiyon ismi. Parantez olmamasına dikkat edin. wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; // WinMain fonksiyonuna gelen ilk parametre. wcex.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_APPLICATION)); // Pencerenin simgesi wcex.hCursor = LoadCursor(NULL, IDC_ARROW); // Pencerenin işaretçisi wcex.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE); // Arkaplan rengi wcex.lpszMenuName = NULL; // Pencerenin kullanacağı menü. Biz menü kullanmayacağımız için NULL atıyoruz. wcex.lpszClassName = TEXT("Win32App"); // Pencereninin Sınıf Adı. Başka bir yerde kullanılacağından bu ismi unutmamanız gerek. if (!RegisterClass(&wcex)) { MessageBox(NULL, TEXT("RegisterClass Hatası!"), TEXT("Win32 Uygulaması"), NULL); return EXIT_FAILURE; } HWND hWnd = CreateWindow(TEXT("Win32App"), // Pencerenin sınıfının adı. Daha önce unutmamanız gerekli dediğim şey. TEXT("Win32 Uygulaması"), // Pencerenin başlığı WS_OVERLAPPEDWINDOW, // Pencerenin görünüm stili. CW_USEDEFAULT, CW_USEDEFAULT,// Pencerenin açılacağı koordinatlar. Sırasıyla X ve Y 500, 100, // Pencerenin boyutları. Sırasıyla Genişlik ve Yükseklik NULL, NULL, hInstance, // WinMain' e gelen ilk parametre NULL); if (!hWnd) { MessageBox(NULL, TEXT("CreateWindow Hatası!") ,TEXT("Win32 Uygulaması"), NULL); return EXIT_FAILURE; } // hWnd : CreateWindow() fonksiyonunun dönüş değeri // nCmdShow : WinMain fonksiyonunun son parametresi ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int) msg.wParam; // ve WinMain fonksiyonu biter } LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; TCHAR Yazi[] = _T("Merhaba Dünya!"); // Ne yapayım bende bir programcıyım switch (message) // Fonksiyonun ikinci parametresi { case WM_PAINT: // Ön tanımlı mesajlardan biri hdc = BeginPaint(hWnd, &ps); TextOut(hdc, 5, 5, // Yazının konumu. Sırasıyla X ve Y Yazi, _tcslen(Yazi)); // Üstte tanımladığımız yazıyı gösteriyoruz. EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); // Eğer mesaj işleme alınmazsa öntanımlı pencere işlem fonksiyonunun değeri döndürülüyor. break; } return 0; // ve WndProc fonksiyonunun sonu }