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;
}







