あなたの場合、日本語の勉強が先でしょう。
関係あるかどうかわからんが
GetCurrentDirectoryが必ずしもexeのあるフォルダを指すとは限らんよ
DOSさわったこと無いプログラマが増えてきたんかな。
>>951 GetModuleFileName使えば?
>>956 WinNT系ならレジストリいじればいいはず。
Win9x系なら非公開APIを使ってシステムの環境変数領域を取得し、
メモリの内容を直接書き換える。
>>929 >DirectXのシェーダ機能を無理やり使ってPCからキーン・・・という音を出せばGOOD!
おいおい、それ俺のNEC Lavie のノートPCだおwwwwwwっww
画面のスクロールするとキーンwww
GetOpenFileNameへのコントロールの追加を「CreateWindowで」動的に、
行いたいのですが、次のようなHookProcではうまくいきません。
具体的には、ダイアログの描画が適切に行われず、画面が乱れます。
どうしたらよろしいでしょうか?
UINT_PTR CALLBACK OFNHookProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam) {
switch (msg) {
case WM_INITDIALOG : {
MoveWindow(hdlg, 30, 17, 300, 22, FALSE);
CreateWindow("ComboBox", "", CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP, 130, 0, 164, 100, hdlg, (HMENU)0x1000, Instance, 0);
return 0;
}
}
return 1;
}
960 :
デフォルトの名無しさん:2005/12/04(日) 18:32:28
>>951です
>>952さんそうですね。日本語難しいです。
>>953さん。
確かにexeを指すわけではないようなので、
一番最初の立ち上げにカレントフォルダを取得したらいいのかなと思っているのですが。
>>954さんdirやcd なんかしかつかわなくて、
>>955さんへ。
一度試したのですが、最初からうまくいかなくて、
どううまくいかないのか、よくわかりません。
ので、もう少し試してみます。
皆様いろいろありがとうございます。
>>960 GetModuleFileName (GetModuleHandle(NULL),buff,sizeof(buff)-1);
こいつからdatファイルのパスを生成汁
>>961をもう少し丁寧に言うと
GetModuleFileNameで実行ファイルのパス取得
↓
PathRemoveFileSpecでファイル名部分を削除
↓
PathAppendでそれとdatファイル名をくっつける
↓
datファイルのパス完成
>>962 駆け出しの頃に誰もが困惑した経験があるのが、バックスラッシュの切り出しだよな。
【初心者へのお題】
以下のフルパスからディレクトリ名とファイル名を分割せよ。
ただし、tchar.hとC標準関数を用いること。Win32APIは使用禁止。
C:\噂の真相\一覧表\赤十字.doc
スレ違いだゴルァ
965 :
デフォルトの名無しさん:2005/12/04(日) 22:20:49
今アプリケーションを作成していまして、検索ダイアログを
作ったのですが、いったん検索ダイアログを閉じてしまうと、
CFindReplaceDialogオブジェクトがNullになってしまうので
すが、どうにかして状態を残しておくことはできないでしょうか?
CFindReplaceDialogオブジェクトを残しておきたい理由としまして、
ダイアログを閉じても、F3ボタンで検索の続きができるように
したいのです。どなたか教えていただけないでしょうか?
スレ違い
967 :
デフォルトの名無しさん:2005/12/04(日) 22:29:51
何だったか忘れたけど日本語対応の
jstrrchrって関数がついてるコンパイラがあったなぁ
そんなのはMSC/VCにもあるぞ。
970 :
デフォルトの名無しさん:2005/12/05(月) 13:10:50
>>970 BITMAPFILEHEADERのbfOffBitsパラメータを参照してるだけ
>>970 bufが指す位置にはBITMAPFILEHEADERがある。
っていうか、そのプログラム合ってる?
offset=のところ、*が1個多くね?
>>972 bufはLPBYTE*だからあってるよ。
974 :
970:2005/12/05(月) 13:44:04
ありがとうございます。
>>971 なるほど。分かりました。
ビットマップファイルを作るときそこに値を入れますもんね。
>>972 VCとBCCで一応正しく動作しています。
DIB系のは、サイトに載っているのがグローバリー変数なので、
ローカル変数で出来るように意識したんですが、
記述としてよい書き方かは、良く分かりません。
975 :
970:2005/12/05(月) 13:45:14
>>973 ウホ ほんとだ。よく見てなかった。
bufはLPBYTEだと思い込んでた。
977 :
959:2005/12/05(月) 16:18:41
無理なんでしょうか
978 :
デフォルトの名無しさん:2005/12/05(月) 16:47:43
スレッドの中から自分を Create したときの
ハンドルを取得したいと思い
スレッドの中で以下のようにしました
HANDLE hThreadFake = GetCurrentThread();
HANDLE hThreadReal;
DuplicateHandle(
hThreadProcess,
hThreadFake,
hThreadProcess,
&hThreadReal,
0,
FALSE,
0
);
このようにして得られる
ハンドル hThreadReal が
このスレッドのハンドルではなく
なぜか,次にスレッドを Create したときの
ハンドルになります.
なぜこのようになるのでしょうか?
979 :
デフォルトの名無しさん:2005/12/05(月) 18:01:53
GetMessage()でユーザからのメッセージをmsgに格納し,
それをDispatchMessage()でウィンドウプロシージャに渡す事は解りましたが。
例えばウィンドウA,Bを作成し、ウィンドウAへのメッセージとウィンドウBへのメッセージも
このメッセージループで取得されますよね?そしてDispatchMessageで適当なウィンドウプロシージャへ
送出するのですが。
この送出先というのは、DispatchMessageがMSG構造体のメンバHWND hwndから判断してるのでしょうか?
>>979 それは違う
そこに来るのは自分宛のMsgのみ
DispatchMessageで回ってくるMsgとは別に
Windows自身がMsgキューを持っている
そちらにはどのWindowsへ送るMsgかのハンドルを持っている
>>981 ??????????
別々のウィンドウでも同じアプリケーションのものなら単一のメッセージループですが?(一部除く)
>>979のウィンドウA、Bもそういうことだろ?
>>959 なんでそんなめんどくさいことしてんの?
lpTemplateNameじゃ駄目なん?
984 :
デフォルトの名無しさん:2005/12/05(月) 22:09:48
>>962さん丁寧に教えていただきありがとうございます。
その通りにするとちゃんとできました。
>>963さん
char *Getdictory(){
char moji[] = "C:\噂の真相\一覧表\赤十字.doc";
int mojicount = strlen(moji);
char damy[mojicount+1];
int i,j;
for(i=0;i<strlen(moji);i++){
if(moji[mojicount-i]=='\\') break;
}
for(j = 0;j<i;j++){
damy[j] = moji[j];
}
damy[++j]='\0';
return damy;
}
こんな感じでしょうか。コンパイラーは通してないですが、
場違いですみません。
985 :
デフォルトの名無しさん:2005/12/05(月) 22:13:49
>>984訂正
for(j = 0;j<i;j++){
ここちがう。
for(j = 0;j<mjicount-i;j++){
まちがいだらけかも。
>>982 >同じアプリケーション
同じスレッドでしょ
>>984 IsDBCSLeadByte, CharNext あるいは mbcs 対応の crt 関数使わないと
'\\' を正確に判断できないよ
その前に
int mojicount = strlen(moji);
char damy[mojicount+1];
なんだよこれ
初心者スレ行け
元のコードを結構修正することになるけど、CharNextのほうが986のより楽。
>>987 C99という可能性はまだ消えていない。
>>987 確かに。
スペルはdamyじゃなくてdummyだわな。
話にならん。
WM_MOUSEMOVEメッセージについてなんですけど、
マウスカーソルがスタティックテキスト(含むグループボックス)の子ウィンドウ上の時にはメッセージ来るようなんですが、
他の子ウィンドウ(エディットコントロールやチェックボックスなど)上だとメッセージが来ないようなのです。
うまくスタティック以外のウィンドウ上でのマウスカーソルの動きをキャッチする方法はないのでしょうか。
992 :
959:2005/12/05(月) 23:57:31
>>983 任意のhWndを持つウィンドウの追加が動的に行えればそれでも
構いません。ただし、.resファイルなどは一切使用しないことが
条件なのです。どうすればいいでしょうか?
Z
1000なら元カノをレイープ
>>995 犯罪予告すると、かなりの確率で警察のお世話になるよ。
大丈夫、元カノはくたびれた南極ちゃんだから
1000
1000
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。