ツールバーにリソースを設定するには?


たいらひとし  2005-06-09 03:32:51  No: 57780

再びお願いします。たいらです。

前回の質問「ATLでCoolBarは設定できる?」でツールバーが作成できる様になり
一安心したのもつかの間、また壁に突き当たってしまいました。

何も無いツールバー上にエディットボックスやボタン、コンボボックス等の
リソースを設定しようとしましたが、サンプル以上のことをしようとしても
設定できませんでした。
サンプル:http://www.codeproject.com/atl/ietoolbartutorial.asp

たとえば、ボタンをサンプルの1つから2つへ増やそうと同じ内容の項目を
名称を変えて増やしてもエラーになってしまいます。
下記がその部分にあたります。

*---------------------------------------------------------------*

LRESULT CToolbar::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
   SendMessage(m_hWnd, TB_SETEXTENDEDSTYLE, 0, (LPARAM)TBSTYLE_EX_MIXEDBUTTONS);
   SendMessage(m_hWnd, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
   SendMessage(m_hWnd, TB_SETMAXTEXTROWS, 3, 0L);

   TCHAR* pCaption = _T("Get Quote");
   int iIndex = ::SendMessage(m_hWnd, TB_ADDSTRING, 0,(LPARAM)pCaption);
   HICON hMotley  = LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDI_TST));
   m_hImageList = ImageList_Create(16,16, ILC_COLOR16, 1, 0);
   int iImageIndex = ImageList_AddIcon(m_hImageList, hMotley);
   DestroyIcon(hMotley);

   ::SendMessage(m_hWnd, TB_SETIMAGELIST, 0, (LPARAM)m_hImageList);
   TBBUTTON Button;
   ZeroMemory((void*)&Button, sizeof(TBBUTTON));
   Button.idCommand = IDM_GETQUOTE;
   Button.fsState = TBSTATE_ENABLED;
   Button.fsStyle = TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE | BTNS_SHOWTEXT;
   Button.dwData = 0;
   Button.iString = iIndex;
   Button.iBitmap = 0;
   ::SendMessage(m_hWnd, TB_INSERTBUTTON, 0, (LPARAM)&Button);

   RECT rect = {0,0,0,0};
   m_EditWnd.Create(m_hWnd, rect, NULL, WS_CHILD|WS_VISIBLE, WS_EX_CLIENTEDGE);
   m_EditWnd.SetFont(static_cast<HFONT>(GetStockObject(DEFAULT_GUI_FONT)));

   return 0;
}

*---------------------------------------------------------------*

サンプルでボタンの設定を行なっているのはこの部分のようなので、ここに
追加すれば良いと思うのですが確信がもてません。
どなたかご存知の方ご教授下さいます様宜しくお願いします。


たいらひとし  2005-06-09 03:42:03  No: 57781

環境を忘れていました。VC++6.0です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加