戻る
ウインドウを出すCのソースコード例
#include <windows.h>
#include <tchar.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
/* エントリポイント */
int WINAPI WinMain(
  HINSTANCE hCurInst,
  HINSTANCE hPrevInst,
  LPSTR lpsCmdLine,
  int nCmdShow)
{
  HWND hWnd;
  WNDCLASSEX wc;
  MSG msg;
  BOOL bRet;
  /* ウィンドウクラスの定義 */
  wc.cbSize = sizeof(WNDCLASSEX);
  wc.style = CS_HREDRAW | CS_VREDRAW;
  wc.lpfnWndProc = WndProc;
  wc.cbClsExtra = 0;
  wc.cbWndExtra = 0;
  wc.hInstance = hCurInst;
  wc.hIcon = (HICON)LoadImage(
    NULL,
    IDI_APPLICATION,
    IMAGE_ICON,
    0,
    0,
    LR_DEFAULTSIZE | LR_SHARED);
  wc.hCursor = (HCURSOR)LoadImage(
    NULL,
    IDC_ARROW,
    IMAGE_CURSOR,
    0,
    0,
    LR_DEFAULTSIZE | LR_SHARED);
  wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  wc.lpszMenuName = NULL;
  wc.lpszClassName = _T("SampleClass");
  wc.hIconSm = (HICON)LoadImage(
    NULL,
    IDI_APPLICATION,
    IMAGE_ICON,
    0,
    0,
    LR_DEFAULTSIZE | LR_SHARED);
  /* ウィンドウクラスの登録 */
  if(RegisterClassEx(&wc) == 0)
    return FALSE;
  /* ウィンドウの作成 */
  hWnd = CreateWindow(
    wc.lpszClassName,
    _T("Window App Sample"),
    WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    CW_USEDEFAULT,
    NULL,
    NULL,
    hCurInst,
    NULL);
  /* ウィンドウの表示 */
  ShowWindow(hWnd, nCmdShow);
  UpdateWindow(hWnd);
  /* メッセージループ */
  while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) {
    if (bRet == -1)
      break;
    else {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    }
  }
  return (int)msg.wParam;
}
/* ウィンドウプロシージャ */
LRESULT CALLBACK WndProc(
  HWND hWnd,
  UINT msg,
  WPARAM wp,
  LPARAM lp)
{
  switch (msg) {
    case WM_DESTROY:
      PostQuitMessage(0);
      break;
    default:
      return DefWindowProc(hWnd, msg, wp, lp);
  }
  return 0;
}
戻る