【初心者歓迎】C/C++室 Ver.17【環境依存OK】
RECT rect
と
POINT point
は違うだろ
>>945 ClientToScreenにもそのまま&rectを渡せ。
>>946 クライアント座標をスクリーン座標に変換したかったのかと思われる。
winsysにシステムを色々と入れてるんだろうと予想して…
こういう事をしたかったんじゃないか?
rectでclientサイズ取得してpointでclientのscreen座標を求める。
それをrectに移してサイズ取得したのを代入すればclient内部のscreen座標が出るとでも。
どう期待したらこう思うのか良く解らないが。
>>948 それだと
'ClientToScreen' : RECTからPOINT変換不可
が出てくると思う。
なので
ClientToScreen(winsys->hWnd,(POINT)&rect);か?
RECTとPOINTは違うけどいけたと思う。
>>950 RECTとPOINTはそれで無理。
漏れが知ってる事でマジレスするとそのまま&rectは渡せない。
スマソ。初心者なので答えは任せる。
>>945 マジレスするとPOINTの宣言後にPOINTの初期化がされてないから。
POINT point = {0,0};
で一応上手くいく。
更新して立ってなかったら次スレ立ててくるわ。
>>953 スレタイから環境依存OKを外したのは意味があるのか?
あと、 Ver が vol に変わってるのも意味がわからん。
スマソ。単に環境依存OK文字忘れていたorz
今までvolと思っていて見直したらverだったんで凹む。
やっぱスレ立てたの間違いだったorzマジスマソ
>>945 どっちかっつとWin32APIスレ行きな質問だな。
GetWindowRectとGetClientRectで自前計算できようが
pointが未初期化。
pointにrectのleft,top入れるべし、、、ってどうせゼロだから0入れればいいけど。
んで、rectの4つすべてに足して平行移動しないと。
API以前の話だな
age
959 :
デフォルトの名無しさん:2005/06/06(月) 14:50:11
miss!
ゲームの補助ツールを作っているのですが、
F1キーを押す、みたいな関数って無いんでしょうか。
調べてもキーが押されているかどうかを調べるようなのは色々あるようなのですが。
環境はVC++です。
OS何よ?っても、ゲームって言うしたぶんWindowsじゃろうけど
VC++って書いてあんだろ
SendMessageでメッセージをウィンドウに送ればいいかと
VK_F1だっけか
963 :
960:2005/06/06(月) 20:15:26
>>961 すみません、書き忘れてました。
Windowsです。
>>962 VC++でWindowsのアプリしか作れないのか?
VC++はクロスコムパイラじゃないだろ
どれにしても結局Windows上で動く罠。
CE用のはターゲットCPU幾つか選べまんねん。
969 :
960:2005/06/06(月) 23:18:29
一応PostMessage(HWND_BROADCAST, WM_KEYDOWN, VK_F1, 0)
で思ったような動作はしたのですが、どうも遅い気がします。
何か遅くなるような原因とかあるんでしょうか…?
970 :
877:2005/06/06(月) 23:34:10
C言語において個数も長さも未定の文字列を扱うために
char **name;
というのを使おうとしているのですがうまくいきません。
どうすればよいのでしょうか?
int main()
{
char *str1 = "aaaa"; //とりあえず2つ
char *str2 = "bbbb";
char **name;
for(i=0; *str1!='\0'; i++){
name[0][i] = *str1;
str1++;
}
for(i=0; *str2!='\0'; i++){
name[1][i] = *str2;
str2++;
}
実行するとメモリアクセスエラーが発生します。
>>970 書き込む先のメモリを割り当てるとよい。
972 :
デフォルトの名無しさん:2005/06/06(月) 23:55:36
>>971 メモリを割り当てるというのは
mallocを使うと言うことでよろしいのでしょうか?
んだ
974 :
972:2005/06/07(火) 00:00:17
なるほど、mallocを調べてみてもう少しがんばってみます!
ありがとうございました。
975 :
780:2005/06/07(火) 02:40:46
>>974 mallocしたらちゃんとfreeしとけよ。
って漏れこんな指摘ばっか。最近これでひどい目にあいまつた。
>>969 そりゃBROADCASTしてりゃ重くなるわ
>>969 ネットワークのMACアドレス問い合わせパケットじゃねぇんだからよ、
ある特定のアプリの窓にメッセージ送るのにいちいちBROADCASTするなんてただの阿呆だぞ。
目的のアプリの窓のハンドル取得して直接送れ
978 :
960:2005/06/07(火) 15:54:35
>>977 ハンドルって毎回変わるやつですよね?
すみません、スキル足らずで取得の方法がわからなくて…。
>>978 それはプログラムのスキルが足らないんじゃなくて検索のスキルが足らないな
おまえさんに必要なのはC/C++のことよりもWin32APIのことだし、
今後わからないならWin32APIスレで聞くとよい
こりゃSendInputやらkeybd_eventの存在も知らなそうなだ
単一のWindowにKEYDOWN送るのにkeybd_eventすることも無いと思うが
まあな
演算子のオーバーロードの辺りで頭がこんがらがっちゃいました。
だれかこんな僕に優しくわかりやすく教えてください
>>984 どんな風にわからないのか、優しくわかりやすく説明してくれ。
なんもかんもわからんで、どないもこないもなりませんわ
やめちまえ
すみやかにその企画を終了し、別の企画に取り組みたまえ
operator T( ){
throw ぬるーり;
}
>>990 x == 0 のとき、a[0][1] は 1 になるが、
x == 1 のとき、a[0][1] はどうなる?
>>990 >/*構造体型struct edgeの宣言*/
言われんでも見りゃわかるわw
「何をしてるのか」じゃなくて「何をしたいのか」をコメントしような
この場合なんのつもり(何に使うつもり)で構造体edgeを宣言
したのかを書いてくれ
ちなみにxを使ったループが外にあるせいで
毎回結果が上書きされてx==9の場合の結果しかaに入ってないが
それが意図した操作なのか?根本から間違ってるように見える
ちと、文字列の半角を全部全角に切り替える処理を行いたいんですが
VBのstrtocnvみたいな便利な関数は無いですか?
LcMapString()
>>967 今だと Xbox360 (PowerPC) とか。