[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why is not pbsdboot.ini created?



くわなです。

2000年04月09日(日) 12時01分頃、takemuraさんは書きました。

> どう変更すればよいかわかっていたら教えてください。
> (なるべくわかりやすく(^^;)

えーと、WinMain()でメッセージループの所が有ると思いますが、

ここを、

>	while ( GetMessage(&msg, NULL, 0, 0) != FALSE ) {
>		TranslateMessage(&msg);
>		DispatchMessage(&msg);
>	}
---
<	while(GetMessage(&msg, NULL, 0, 0)) {
<		if (hWndMain == 0 || !IsDialogMessage(hWndMain, &msg)) {
<			TranslateMessage(&msg);
<			DispatchMessage(&msg);
<		}
<	}

こんな感じにすれば良いと思います。
hWndMainはコントロールの張り付いているウインドウです。

ざっくり眺めましたけど、複雑ですね。
リソースからウインドウ作るのに、

<	hWndMain = CreateDialog( hInstance, 
<					MAKEINTRESOURCE(IDD_MAIN_640X240), 
<					NULL,
<					DlgProc 
<					); 

って感じでやってないのはなにか意味が有るのでしょうか。
ざっくり見ただけで、 どれがメインウインドウか良く解ってないです。

後、アクセラレータは、
コントロールのキャプションの文字列に'&'を付けるだけです。
例えば、"Boot" -> "&Boot" とすると、
alt + B が使えます。

> なんで tab が効かないのかわかりません。
> 大昔見たいに、 tab が来たら自分で focus を移さないと
> いけないのでしょうか?

そーいうことはないと思います。
多分、メッセージループの所だけですね。
リソースの、タブストップ、グループ、タブオーダの辺も、
注意が要りますが・・・。

> diskio.h については、libsa/devopen.c から winblk* の部分を
> コメントアウトして、winblk.c をプロジェクトから外せばコンパイル
> できるようになると思います。

コメントアウトして通るようにしてみます。