S.F.Tracker(19)

公開:2005-04-10 10:52
更新:2020-02-15 04:36
カテゴリ:sftracker,windows,audio,tracker

また少し進みました。
タブダイアログの中にスクロールするWindowを組み込んでみました。
これをベースにMachine EditorやPattern Editorを作っていこうと思います。


win32 gui generics で、ダイアログでない通常のウィンドウを作成するにはwindow_baseを継承すればよいのかと思っていたのですが、ウィンドウをcreate_wnd()すると死にます。
ヒントを求めてdialogやframeのソースを見るとひと工夫必要なことがわかりました。

create_info frame::def_create_info() {
// first, register class (note: might already be registered  - that's ok)
WNDCLASSEX info = window_base::class_info().raw_info();
::RegisterClassEx( &info );
try { window_class_info::from_name( info.lpszClassName, (HINSTANCE)info.hInstance);
} catch( exception &) {
WIN32GUI_THROW exception( _T("failed creating frame class"));
}
return create_info().class_name( info.lpszClassName)
.style(     WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_OVERLAPPEDWINDOW | WS_POPUP)
.ex_style(  WS_EX_APPWINDOW | WS_EX_WINDOWEDGE)
.rect( 200, 200, 600, 450);
}

ウィンドウを
作る前にはRegister Classが必要だってことですよね。基本中の基本...。


http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/sftracker/SFTracker/