メッセージボックスの英語化 – プログラミング – Home

メッセージボックスの英語化
 
通知
すべてクリア

[解決済] メッセージボックスの英語化


HHH
 HHH
(@HHH)
ゲスト
結合: 21年前
投稿: 2
Topic starter  

初めて質問いたします。

開発環境は、 OS WindowsXP 言語 VisualC++ Ver6.0 です。

AfxMessageBoxの”はい””いいえ”を英語化したい”Yes””No”のですが、
どなたかご存知の方教えてください。


引用未解決
トピックタグ
III
 III
(@III)
ゲスト
結合: 21年前
投稿: 6
 

メッセージボックスに対しては簡単には処理できないんじゃなかったかなぁ?

メッセージボックスを立ち上げる前にタイマー立ち上げて
タイマーが来たら、タイトルとかからメッセージボックスのハンドルを取得して
そこから「はい」ボタンのハンドルも取得して
SetWindowTextとか・・・・

タイマーじゃなければスレッドで立ち上げてから
タイマーが来た時と同じ処理とか・・・

全然はずしてるかもしれないけど・・・・

メッセージボックスに対するそのような設定で
一番簡単なのはダイアログボックスを作ることだったと思うけど・・・


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 22年前
投稿: 310
 

SetLocaleInfo


返信引用
HHH
 HHH
(@HHH)
ゲスト
結合: 21年前
投稿: 2
Topic starter  

IIIさん、RAPTさん ありがとうございました。

早速、SetLocaleInfoを調べてみます。


返信引用
てつや
 てつや
(@てつや)
ゲスト
結合: 22年前
投稿: 34
 

SetLocaleInfoしてしまうと、システム全体に影響がでるため、
SetWindowsHookExでフックした方がいいと思います。


返信引用
てつや
 てつや
(@てつや)
ゲスト
結合: 22年前
投稿: 34
 

一応サンプル。
# 動作確認はしていません。

HHOOK hMsgBoxHook;

LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode>=0){
switch(nCode){
case HCBT_ACTIVATE:
SetWindowText(GetDlgItem((HWND)wParam, IDOK), YES));
return 0;
}
}

return CallNextHookEx(hMsgBoxHook, nCode, wParam, lParam);
}

int func()
{
hMsgBoxHook = SetWindowsHookEx(WH_CBT, CBTProc, NULL, GetCurrentThreadId());
int retval = MessageBox(hwnd, てきすと, きゃぷしょん, MB_OK);
UnhookWindowsHookEx(hMsgBoxHook);
return retval;
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました