- 締切済み
コントロールのフォントの変更
コントロールに任意のフォントを指定できなくて困っています。 class CFrame : public CFrame { private: CFont m_cFont; CStatic m_cStatic; public: CFrame(); afx_msg void OnCreate(LPCREATESTRUCT); }; CFrame::CFrame() { Create( // 省略 ); m_cFont.CreateFont( // 省略 ); } axf_msg void CFrame::OnCreate(LPCREATESTRUCT lp) { RECT rect; DWORD dw; rect.top = 10; rect.left = 10; rect.right = 100; rect.bottom = 60; dw = WS_CHILD | WS_VISIBLE; m_cStatic.Create("AAAAAA", dw, rect, this, ID); m_cStatic.SetFont(&m_cFont, TRUE); } 文字は表示されるのですが、フォントがおそらくデフォルトのままだと思われるのですが、どうしてかわかりません。 ダイアログベースでは、OnInitDialogで実行していたと思いますが、以上のコードではだめなんでしょうか? よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
お礼
単なるコーディングミスというか、勉強不足です。 Createとした後で、CFont.Createしてます。これでは、 OnCreateで、いくらフォント設定しても無駄です。 おかげさまで気がつけました。 ありがとうございました。
補足
CreateFontは成功しています(戻り値確認済み)。 C++は勉強中なので以下であっていると思うのですが。 アプリのインスタンスが生成された時にCFrameのインスタンスが生成されると思うのですが。 CApp::InitInstance() { m_pMainWnd = new CMainFrame(); m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE; } CApp App; // アプリケーションのインスタンス生成