喫茶XRAYトップページ

[▲前のスレッド]

[44] 「プリンタの設定ダイアログを遠隔操作」について返信 削除
2004/11/29 (月) 15:05:19 ゴリ男
はじめまして。

「プリンタの設定ダイアログを遠隔操作」を参考に、
プリンタ選択 → OKボタン押し という流れの処理を
書きたいと思ったのですが、うまく行きません。

コードは、
//該当するプリンタを選択状態
SendMessage(PrnWnd, CB_SETCURSEL, Index, 0);
//OKボタン押し
PostMessage(GetDlgItem(DlgWnd, 1), BM_CLICK, 0, 0);
という感じにしたのですが、実行すると、デフォルト
プリンタにて印刷されてしまいます。

分かる方がいらっしゃいましたら、ご教授いただけます
でしょうか。
よろしくお願いします。

[45] Re:「プリンタの設定ダイアログを遠隔操作」について返信 削除
2004/11/29 (月) 18:03:24 Mr.XRAY
▼ ゴリ男さん,こんにちは.Mr.XRAYです.

> という感じにしたのですが、実行すると、デフォルト
> プリンタにて印刷されてしまいます。


さて,困りました.どうしましょうか...
取敢えず,コードで自動的にプリンタを選択するのをやめて,マニュアル
操作(手動,つまり,ボタンクリックで)TPrinterSetupDialogでダイアロ
グを表示して,プリンタを選択し,[OK]ボタンをクリックして印刷した
場合はどうなるか確認してみて下さい.


[46] Re:「プリンタの設定ダイアログを遠隔操作」について返信 削除
2004/11/29 (月) 19:42:58 Mr.XRAY
▼ ゴリ男さん
> SendMessage(PrnWnd, CB_SETCURSEL, Index, 0);

いや〜,失礼しました.CB_SETCURSELというのは選択状態にするだけ
なんですね.
この選択するコードの後に以下のコードでメッセージを送って下さい.

SendMessage(DlgWnd,WM_COMMAND,MakewParam(1136,CBN_SELCHANGE),PrnWnd);

これで選択を終了したことになる様です.
CBN_SELCHANGEは,コンボボックスのリスト部の選択終了のメッセージだ
そうです.オンライン・マニュアルも後程修正しておきます.
このコードを添付しているプリンタ設定コンポもバージョンアップです
ね.(^^;)

補足しておきます.
APIの説明によると,CBN_SELCHANGEはCB_SETCURSELと違い,WM_COMMAND
のパラメータとして送られるメッセージとあります.したがって,上記の
コードとなっています.

[47] Re2:「プリンタの設定ダイアログを遠隔操作」について返信 削除
2004/11/30 (火) 00:38:43 ゴリ男
▼ Mr.XRAYさん
> SendMessage(DlgWnd,WM_COMMAND,MakewParam(1136,CBN_SELCHANGE),PrnWnd);

上のコードを追加し、思った動作にすることができました。
どうもありがとうございました。m(_ _)m

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82