DinopSearchBarをタブブラウザ内で使用する。
SDIやMDIで適当なプロジェクトを作成する。その際、ツールバーはInternetExplorer
スタイル...Rebarを使う設定にする。Rebarに対しDinopSearchBarの表示に必要な
大きさのダミーウインドウを追加し、その領域にバーを表示させている。
このサンプルはバーの表示のみを行っている。Ver1.56で追加された新しいインターフェ
ースを使い任意のHTMLビューに検索結果を表示させる方法は以下のプロジェクトを参考
のこと。
DinopSearchBarを表示させたMDIブラウザのソースファイル
このソースファイルはサンプルのため再配布その他禁止です。各自の責任で御使用ください。
※ このサンプルプログラムはDinopSearchBar Ver1.56以降のインストールが必要です
SDIやMDIで適当なプロジェクトを作成する。その際、ツールバーはInternetExplorer
スタイル...Rebarを使う設定にする。Rebarに対しDinopSearchBarの表示に必要な
大きさのダミーウインドウを追加し、その領域にバーを表示させている。
このサンプルはバーの表示のみを行っている。Ver1.56で追加された新しいインターフェ
ースを使い任意のHTMLビューに検索結果を表示させる方法は以下のプロジェクトを参考
のこと。
DinopSearchBarを表示させたMDIブラウザのソースファイル
このソースファイルはサンプルのため再配布その他禁止です。各自の責任で御使用ください。
※ このサンプルプログラムはDinopSearchBar Ver1.56以降のインストールが必要です
#include "atlbase.h" #import "C:\Program Files\dinop\DinopSearchBar\DinopSearchBar.dll" no_namespace const CLSID CLSID_DinopSearchBarBand = {0x509AC252,0x12BD,0x11d5,{0x97,0x39,0x00,0x50,0x04,0xC0,0x99,0xCF}}; #define DBIF_VIEWMODE_TABBROWSER 100 //タブブラウザモード:GetBandInfoのdwViewModeで指定 class CMainFrame : public CMDIFrameWnd { DECLARE_DYNAMIC(CMainFrame) public: CComPtr<IDinopSearchBarBand> m_lpDinop; //■■■■■■■■■追加■■■■■■■■■ CWnd m_wndDinopSearchbar; //■■■■■■■■■追加■■■■■■■■■ ...(省略) }; int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; if (!m_wndToolBar.CreateEx(this) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("Failed to create toolbar\n"); return -1; // 作成に失敗 } //超適当だけどとりあえずウインドウ作成 if(!m_wndDinopSearchbar.Create(NULL,"test",0,CRect(0,0,0,0),this,IDR_MAINFRAME)) //追加■■■■■■■■■■ { TRACE0("DinopSearchBar用ウインドウの作成失敗\n"); return -1; // 作成に失敗 //追加■■■■■■■■■■ } //■■■■■■■■■■■■■■■■■■■追加■■■■■■■■■■■■■■■■■■ HRESULT hr; CComPtr<IUnknown> lpUnknown; //IDinopSearchBarBandインスタンスの作成 ::CoInitialize(NULL); //COMの初期化 hr= lpUnknown.CoCreateInstance(CLSID_DinopSearchBarBand); //IDinopSearchBarBandの作成 if(SUCCEEDED(hr)) hr = lpUnknown->QueryInterface(&m_lpDinop); //IDinopSearchBarBandの取得 // DinopSearchBarの表示に必要なウインドウサイズを取得する // 取得にはIDeskBand::GetBandInfoを用いる // // &&&&DinopSearchbarを【タブブラウザ】モードに変更する設定も兼ねる!! // if(m_lpDinop != NULL) { CComPtr<IDeskBand> lpBand; DESKBANDINFO sBandInfo; ZeroMemory(&sBandInfo,sizeof(DESKBANDINFO)); sBandInfo.dwMask = DBIM_MINSIZE; //取得するのはツールバーのサイズのみ! hr = m_lpDinop->QueryInterface(&lpBand); //IDeskBandの取得 if((SUCCEEDED(hr) && (lpBand != NULL)) hr = lpBand->GetBandInfo(0,DBIF_VIEWMODE_TABBROWSER,&sBandInfo); //DESKBANDINFO取得およびタブブラウザ・モード設定 // ■↑これが重要?■ if(SUCCEEDED(hr) m_wndDinopSearchbar.MoveWindow(0,0,sBandInfo.ptMinSize.x,sBandInfo.ptMinSize.y); //ウインドウサイズの設定 } // ::CoUninitialize(); //COMの開放(アプリケーション終了時呼び出す) //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ //ReBarへの登録 if (!m_wndReBar.Create(this) || !m_wndReBar.AddBar(&m_wndToolBar) || !m_wndReBar.AddBar(&m_wndDinopSearchbar)) //変更■■■■■■■■ { TRACE0("Failed to create rebar\n"); return -1; // 作成に失敗 } //■■■■■■■■■■■■■■■■■■■追加■■■■■■■■■■■■■■■■■■ //IDinopSearchBarBandの操作 if(m_lpDinop != NULL) { if(SUCCEEDED(hr)) hr = m_lpDinop->CreateToolbar((long)m_wndDinopSearchbar.m_hWnd); //ダイアログバーへ割り付ける } //■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ // TODO: もしツール チップスが必要ない場合、ここを削除してください。 m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY); return 0; }