再びお願いします。たいらです。
前回の質問「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;
}
*---------------------------------------------------------------*
サンプルでボタンの設定を行なっているのはこの部分のようなので、ここに
追加すれば良いと思うのですが確信がもてません。
どなたかご存知の方ご教授下さいます様宜しくお願いします。
環境を忘れていました。VC++6.0です。
ツイート | ![]() |