1

だから私はこのコードを持っています

CButton details;
details.Create(_T("details"),WS_CHILD|WS_VISIBLE|WS_TABSTOP|BS_PUSHBUTTON,CRect(120,100,100,30), this, 15000);

しかし、それは何もしません(作成されたボタンは作成後に表示されません)。私は何が欠けていますか?

編集:コードは、ダイアログ ベースのアプリケーションの OnInitDialog 関数にあります。すべきことは、ボタンを表示することです。

4

4 に答える 4

3

CButton は、自動保存期間で作成されます。そのため、OnInitDialog が戻ると破棄されます。(これは、ダイアログが表示される前です。) 代わりに、CButton をメンバー変数にします。

于 2013-11-24T19:53:26.117 に答える
0

これは宣言に依存していCButton details;ます!一般的なインスタンスとして宣言する必要がありCButton details;ます(ローカルインスタンスではありません)

インスタンスを一般的なものとして定義するCButton details;と、問題が解決します! 怒鳴るコード作業 100 パーセント:

#define BBB 10000
CButton c;
void CThreadsDlg::OnBnClickedButton1()
{
    bool a = c.Create(_T("new button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(100, 100, 220, 230), this, BBB);
}

cボタンが作成された場合、a変数は になりますtrue

于 2015-12-30T13:53:23.007 に答える