« オーディオプレイヤ開発記 その3 | メイン | ついに我が家も無線 LAN ! »

2006/02/04(土)

●オーディオプレイヤ開発記 その4


 さて、それでは CWnd クラスにさらなる機能をつけていきます。とりあえず、SetCaption, SetExStyle, SetSize, SetStyle, Show, Update あたりですかね。

virtual void SetCaption(LPCTSTR lpWindowName) {
    SetWindowText(m_hWnd, lpWindowName);
}
virtual void SetExStyle(LONG_PTR lStyle) {
    SetWindowLongPtr(m_hWnd, GWL_EXSTYLE, lStyle);
}
virtual void SetSize(int cx, int cy) {
    SetWindowPos(m_hWnd, NULL, NULL, NULL, cx, cy,
                    SWP_NOMOVE | SWP_NOZORDER);
}
virtual void SetStyle(LONG_PTR lStyle) {
    SetWindowLongPtr(m_hWnd, GWL_STYLE, lStyle);
}
virtual void Show(int nCmdShow) { ShowWindow(m_hWnd, nCmdShow); }
virtual void Update() { UpdateWindow(m_hWnd); }

 さてこれで、アプリケーションクラスに CFrameWnd m_wnd; を定義しておき、Run 関数内で、

m_wnd.Create(TEXT("WindowClass"));
m_wnd.SetMainWnd(true); // メインウィンドウに設定
m_wnd.SetStyle(WS_OVERLAPPEDWINDOW);
m_wnd.SetCaption(TEXT("サウンドプレイヤー"));
m_wnd.SetSize(320, 240);
m_wnd.Show(m_nCmdShow);
m_wnd.Update();

MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}
return (int)msg.wParam;

などとすることでウィンドウを表示する、という使い方ができるようになりました。本来はこの、CFrameWnd クラスをさらに継承して、CMainWindow クラスかなんかを作成するというような使い方を想定してるんですけどね。ここまでのソースコードはこちら ( Hayaemon20060204_src.lzh ) 。

トラックバックURL

このエントリーのトラックバックURL:
http://www.edolfzoku.com/diary/mt-tb.cgi/119

コメントする