質問

ダイアログボックスでコードプロジェクトの究極のグリッドを使用しようとしていますが、グリッドが表示されません。

m_Plist.AttachGrid(this、IDC_CREDENTIALS)はtrueを返しますが、グリッドを表示する静的テキストプレースホルダーは表示されず、グリッドは表示されません。

ここからのコードのサンプルを使用しています http://www.codeproject.com/KB/MFC/UltimateGrid_Start.aspx?display=PrintAll&fid=452565&df=90&mpp=25&noise=3& ; sort = Position& view = Quick& select = 2629959& fr = 51#Using_the_Grid_in_a_CDialog

VS2008 SP1を使用して、最新の更新版UltimateGrid72_Src_Update03.zipおよびImをインストールしました。

ありがとう...

BOOL CCredentials::OnInitDialog()
{
    CDialog::OnInitDialog();

    MyCug m_PList;

m_Plist.AttachGrid(this, IDC_CREDENTIALS);

}
役に立ちましたか?

解決

Ultimate Gridを自分で使用したことはありません。ただし、投稿したコードを見ると、問題がある可能性が高いことがわかります。" MyCug"のインスタンスを宣言しています。スタックに追加しますが、そのスタックベースのインスタンスは、OnInitDialog()メソッドが存在するとすぐに破棄されます。あなたがしなければならないことは" MyCug m_PList;"の宣言を置くことですダイアログクラスのメンバーとして、グリッドオブジェクトの有効期間がダイアログの有効期間と同じになるようにします。

他のヒント

グリッドが表示されない理由がわかりません。探しているのは、ダイアログテンプレートから正しくロードされているか、表示されているかです。 spy ++(visual studioで配布されているツール)を使用して、ダイアログで実際に作成されたウィンドウ、その場所、およびそれらに設定されているフラグとスタイルを確認できます。

グリッドを作成してアタッチしたら、例で定義されている行と列を追加しますか?

それ以外の場合、何も表示されません。

MyCug :: OnSetup()で次のコードが必要になります:

void MyCug::OnSetup(){ 

    //*******Set the Rows and Columns
    SetNumberCols(10);
    SetNumberRows(10); 

} 

これは、7.2バージョンのチュートリアルからのものです。私はUGを広範囲に使用しましたが、VS2008に問題はありません。ただし、グリッドはすべて自分で作成し、ダイアログテンプレートは使用しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top