Win32API質問箱 Build73

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build72
http://pc11.2ch.net/test/read.cgi/tech/1226575789/
2デフォルトの名無しさん:2008/11/29(土) 14:02:56
3デフォルトの名無しさん:2008/11/29(土) 14:04:20


- Google
http://www.google.com/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/

- Advanced Windows 第5版(書籍)
http://www.amazon.co.jp/dp/4891005920
4デフォルトの名無しさん:2008/11/29(土) 14:04:51
5デフォルトの名無しさん:2008/11/29(土) 14:05:02
6デフォルトの名無しさん:2008/11/29(土) 14:05:15
7デフォルトの名無しさん:2008/11/29(土) 14:06:56
・MSDNライブラリのリンクを新しいのにした
・AdvancedWindowsのリンクを5版にした
・MSDN2ライブラリのリンクを消し忘れた

以上
8デフォルトの名無しさん:2008/11/29(土) 14:09:34
ReadFile関数の読み込みバッファにwchar_t型のバッファを渡したのですが、
文字列が格納出来ていない原因がわかりません
char型のバッファだとうまくいくのですが
9デフォルトの名無しさん:2008/11/29(土) 14:10:26
BOMつけろ馬鹿
10デフォルトの名無しさん:2008/11/29(土) 14:11:01
>>8
入力がwcharじゃないからでしょうよそりゃ


            , ;,勹
           ノノ   `'ミ
          / y ,,,,,  ,,, ミ
         / 彡 `゚   ゚' l
         〃 彡  "二二つ
         |  彡   ~~~~ミ
     ,-‐― |ll  川| ll || ll|ミ―-、
   /     |ll        |   ヽ
  /       z W`丶ノW     ヽ
 /        \\   / /      |
/    天      \`i / /  狗   |
11デフォルトの名無しさん:2008/11/29(土) 14:15:04

         *、 *、      。*゚    *-+。・+。-*。+。*
        / ゚+、 ゚+、   *゚ ・゚    \       。*゚
       ∩    *。  *。    +゚    ∩    *
   (´・ω・`)      +。   +。   ゚*     (´・ω・`)
   と   ノ      *゚  *゚    ・     。ヽ、  つ
    と、ノ     ・゚  ・゚     +゚    *  ヽ、 ⊃
     ~∪    *゚  *゚      *    +゚    ∪~   ☆
          +′ +′      +゚   ゚+。*。・+。-*。+。*゚
12デフォルトの名無しさん:2008/11/29(土) 14:25:57
予めウィンドウのハンドルなどを適当な変数に代入しておいて、
ウィンドウプロシージャ内などで、引数として与えられるハンドルではなく、予め代入しておいたハンドルを使用することは、何か問題あるのでしょうか。
13デフォルトの名無しさん:2008/11/29(土) 14:37:56
>>12
まったく問題ないよ。でも WM_CREATEは、作成完了前に送られるから、プロシージャの仮引数を使わないといけないね。
14デフォルトの名無しさん:2008/11/29(土) 14:38:34
>>13
ありがとうございます。分かりました。
15デフォルトの名無しさん:2008/11/29(土) 14:53:08
16デフォルトの名無しさん:2008/11/29(土) 14:54:06
>12
同じウィンドウクラスに属するウィンドウを複数作るのが面倒になるけどね。
17デフォルトの名無しさん:2008/11/29(土) 14:55:56
>>15
どこの誤爆だよw
そしてどういう状況だよw
18デフォルトの名無しさん:2008/11/29(土) 14:57:30
Windowをクラスでラップすればいいんじゃね?www
俺天才wwwwww

メンバ関数ポインタをウィンドウプロシージャに設定するにはどうしたらいいんですか

SetWindowLongを呼んだら64bitがどうのと警告がでます
19デフォルトの名無しさん:2008/11/29(土) 15:13:57
>>18
SetWindowLongPtrだろ。
こっち使って64ビットの警告が出るのはバグみたいなもんだから、
64ビットで動けば無視していい。あるいはATLみたいな対策するのもありだ。
20デフォルトの名無しさん:2008/11/29(土) 15:28:08
MenuHelp使うと、ステータスバーが平面になるのは仕様?
21デフォルトの名無しさん:2008/11/29(土) 18:28:33
>>15
Hello Kitty guy!
22デフォルトの名無しさん:2008/11/29(土) 19:07:52
まあ俺も、みずほの通帳とカードはキティなんだけどな。
23デフォルトの名無しさん:2008/11/29(土) 19:53:11
自分のこと俺って呼ぶ女の子ですね。分かります。そういうの嫌いじゃありません
24デフォルトの名無しさん:2008/11/29(土) 20:55:39
※ わざと誤爆したり.NETマンセーして荒らす基地外が粘着中です ※
25デフォルトの名無しさん:2008/11/29(土) 21:21:54
嫌いじゃないどころか燃えるのですが、私って変ですか?
26デフォルトの名無しさん:2008/11/29(土) 22:16:44
AlphaBlend()がうまくいかないので教えてください。
BCBのソースで申し訳ないのですが基本的にはMFCなどと同等です。

Graphics::TBitmap* bt = new Graphics::TBitmap;
BLENDFUNCTION blend = {AC_SRC_OVER, 0, 100, 0};
RGBQUAD rgbq;
TCanvas* ti = Image1->Canvas;
bt->Width = 256;
bt->Height = 256;
bt->PixelFormat = pf32bit;

for (int i = 0; i < 255; i++) {
int* sc = reinterpret_cast<int*>(bt->ScanLine[i]);
for (int j = 0; j < 255; j++) {
rgbq.rgbBlue = i;
rgbq.rgbGreen = j;
sc[j] = reinterpret_cast<int&>(rgbq);
}
}

BOOL RESULT =
::AlphaBlend(ti->Handle, 0, 0, Image1->Width, Image1->Height,
bt->Handle, 0, 0, bt->Width, bt->Height,
blend);
if (RESULT == FALSE) {
Application->MessageBox(L"失敗!", L"", MB_OK);

これでImage1という場所に32bitのBitmapを透過度100で貼り付けようと
しているのですが、白い四角が表示されるだけです。しかもAlphaBlend()が
返す値は常にFALSE、つまり失敗しているのです。
BCB固有の部分を無視していただいて差し支えありません。単純に32bitの
Bitmapを透過度100程度で別の場所に貼り付けたいだけなのです。
27デフォルトの名無しさん:2008/11/29(土) 22:24:35
GetLastError
28デフォルトの名無しさん:2008/11/29(土) 22:27:52
87
29デフォルトの名無しさん:2008/11/29(土) 22:31:36
>>27
わかりました。調べてみます。
30デフォルトの名無しさん:2008/11/29(土) 22:46:04
>>27>>28
はい、その通りエラーコード87でした。
つまり ERROR_INVALID_PARAMETER って事ですか・・・

ちなみにAlphaBlend()を通さずに直接描画するとちゃんと
グラデーションがかかった256×256の画像が表示されるのですが、
どこがIvvalid Parameterなのやらさっぱり。
31デフォルトの名無しさん:2008/11/29(土) 23:02:42
INVALID_PARAMETERって言われてるなら渡してるハンドルが変なんじゃないの
OWLだっけ?じゃなくて普通に作ったHDC渡して試すとか
32デフォルトの名無しさん:2008/11/29(土) 23:06:03
VCLですが、HandleプロパティがVCL内部に保持している
オブジェクトのHDCを取り出します。
BCBのヘルプを見ても、Handleで取り出したHDCでWin32を
呼び出しているプログラム例が載っていました。

でも実際に呼び出しが失敗しているわけですから、もうHandleが
おかしいとしか考えられませんね。普通にHDC作ってやってみます。
33デフォルトの名無しさん:2008/11/29(土) 23:08:46
http://www.geocities.jp/asumaroyuumaro/program/winapi/bitmap.html

例えばこれですが、Delphiなんですけどちゃんと動くんですよね。
ここを参考にBCBに移植したら動かなくなったので、移植が失敗
しているのかもしれません。
34デフォルトの名無しさん:2008/11/29(土) 23:25:26
NescafeGoldBlend()
35デフォルトの名無しさん:2008/11/29(土) 23:37:02
お騒がせしました。
×bt->Handle, 0, 0, bt->Width, bt->Height,
○bt->Canvas->Handle, 0, 0, bt->Width, bt->Height,

私のケアレスミスでした。無事動きました。
36デフォルトの名無しさん:2008/11/29(土) 23:38:46
NescafeGoldBlendの大瓶500円で買ってきますた
37デフォルトの名無しさん:2008/11/29(土) 23:57:47
職場で飲むのかえ?
38デフォルトの名無しさん:2008/11/30(日) 01:47:06
そういやAlphaBlend() APIって計算式おかしいよね

Dst.Red = Src.Red * Src.Alpha + (1 - Src.Alpha) * Dst.Red
Dst.Green = Src.Green * Src.Alpha + (1 - Src.Alpha) * Dst.Green
Dst.Blue = Src.Blue * Src.Alpha + (1 - Src.Alpha) * Dst.Blue

↑これが正しいはずなのに

> Dst.Red = Src.Red + (1 - Src.Alpha) * Dst.Red
> Dst.Green = Src.Green + (1 - Src.Alpha) * Dst.Green
> Dst.Blue = Src.Blue + (1 - Src.Alpha) * Dst.Blue

↑実際はこういう計算らしい

なんでこんなおかしな仕様なんだろう
39デフォルトの名無しさん:2008/11/30(日) 02:13:36
うそん
40デフォルトの名無しさん:2008/11/30(日) 02:15:24
>>38
SrcとAlphaの対応は固定だから事前に計算しておけば計算量が減るだろ?
41デフォルトの名無しさん:2008/11/30(日) 02:22:38
>>38
もっとちゃんとヘルプ見た方がいいぞ。
42デフォルトの名無しさん:2008/11/30(日) 03:16:14
>>40
違う

AC_SRC_ALPHAを指定するとSrc/Destは合成する画像のそれぞれのピクセルだから
ピクセルごとにRed/Green/Blue/Alphaの値は違う
43デフォルトの名無しさん:2008/11/30(日) 06:28:55
>>38-42
要するに、Src(32bppDIB)をDstに合成したいときは、

AlphaBlend(Dst, Src)
ではなくて、

Tmp.Red = Src.Red * Src.Alpha
Tmp.Green = Src.Green * Src.Alpha
Tmp.Blue = Src.Blue * Src.Alpha
Tmp.Alpha = Src.Alpha
を用意しておいて、

AlphaBlend(Dst, Tmp)
って事でしょ。使えねぇw
44デフォルトの名無しさん:2008/11/30(日) 13:09:45
プロシージャってクラスの中に入れちゃだめ?
45デフォルトの名無しさん:2008/11/30(日) 13:20:15
いいんじゃね
そのままじゃ入れられないんでサンクを使うか
SetWindowLongPtrでインスタンスのポインタを仕込んでおいて使うか
46デフォルトの名無しさん:2008/11/30(日) 13:25:12
よし!今の俺には難しそうなので、プロシージャだけ独立させようと思います
どうもありがとです
47デフォルトの名無しさん:2008/11/30(日) 13:25:35
スレッド毎のTLS管理で オブジェクト⇔HWND のマップを持つか
48デフォルトの名無しさん:2008/11/30(日) 13:42:56
>>38
それに加えてDst.alpha = Src.Alpha + (1 - SrcAlpha) * Dst.Alphaもやれば、問題ないのでは?
49デフォルトの名無しさん:2008/11/30(日) 13:57:04
プロシージャって何を指してんの
50デフォルトの名無しさん:2008/11/30(日) 13:57:59
45が解答になったらしいからウィンドウプロシージャのことなのだろう。
51デフォルトの名無しさん:2008/11/30(日) 13:58:54
>>48
それ意味無いからw

てか、
(1) Src.Red * Src.Alpha + (1 - Src.Alpha) * Dst.Red
つーことは
(2) Dst.Red + (Src.Red - Dst.Red) * Src.Alpha
と等価なわけだ。

で、AlphaBlend APIの計算式がこれ。
(3) Src.Red + (1 - Src.Alpha) * Dst.Red

あまり計算量減ってなくね?
むしろ事前にSrcにAlphaを掛けろって方が(結果的に)計算量は増えてる気がする。

なぜ(1)または(2)ではなく、敢えて(3)の計算式を採用したのか全く理解できない
このAPI作ったやつ馬鹿だろ。
52デフォルトの名無しさん:2008/11/30(日) 14:39:02
質問です。
アラビア語版Windowsやイスラエル語版Windowsでも
画面座標の原点は左上なんですかっ?

http://i.msdn.microsoft.com/bb688119.f08tm01(en-us,MSDN.10).jpg
これ見るとすべてが反転してるみたいですが
それともわざわざ部品ごとに計算してるんでしょうか
5352:2008/11/30(日) 14:40:38
ああGoogleキャッシュのフレーム外したら
MSの記事がありました。まずそれ読んできます
54デフォルトの名無しさん:2008/11/30(日) 14:48:06
>>52
WS_EX_LAYOUTRTLが指定されている部品の上では座標変換が行われる。
つまり、RTLシステムの上ではこれを解除しなければ原点は右上。
55デフォルトの名無しさん:2008/11/30(日) 16:04:33
>>51
同じαつきsrc画像を使って、複数の別のdstにAlphaBlendを行う場合について考えてみよう。
UpdateLayerdWindowではとくに頻繁に発生する状況だ。
5652:2008/11/30(日) 16:22:24
>>54
分からなくなってきました。

GetWindowRectで得たRECTのleftは左のままですよね?(; ・`д・´)

コードのなかで
int left = rct.left;
ってやってたら
LTRの世界では原点に近い方で
RTLの世界では原点から遠い方なんですよね?
57デフォルトの名無しさん:2008/11/30(日) 17:33:30
>>55
>>51の(2)と(3)はどちらも減算、乗算、加算が一回ずつなんだけど。
(まあ実際にはalpha=0〜255だが)

それに、レイヤードウィンドウならsrc画像(=ウィンドウ内)は頻繁に変わる。
58デフォルトの名無しさん:2008/11/30(日) 17:36:36
>>56
原点の位置 と X軸の符号(右が正か? 左が正か?) は別物でしょ
RTLシステムはどうなっているのかワカランけど
59デフォルトの名無しさん:2008/11/30(日) 17:49:06
>>57
(3)は Src.Red + ~Src.Alpha * Dst.Redだろ
60デフォルトの名無しさん:2008/11/30(日) 18:04:06
(2)は Dst.Red + (Src.Red + 1 + ~Dst.Red) * Src.Alpha か。加算が2回多いな。

でもさ、この最適化(?)ってSrcがほとんど更新されない場合しか意味なくね?
結局のところフェードイン/アウトぐらいしか使い道なさそうな気がする
61デフォルトの名無しさん:2008/11/30(日) 18:14:04
BLENDFUNCTIONに一般的なαブレンド計算式のフラグがあればいいのにねぇ
ま、そういうのはDirectXやGDI+を使うかMMX/SSEで書けってか
62デフォルトの名無しさん:2008/11/30(日) 18:17:46
>>59は/255が抜けてるな。

GDI+ってロクにα合成のオプションなかった気がするが。
Bitmapに前乗算指定しとけば勝手に(3)で要求される処理するけど。

まあ、10年以上前のスペックのPCを想定して作られたAPIだからなあ。
63デフォルトの名無しさん:2008/11/30(日) 18:19:37
いや、だからBLENDFUNCTIONに普通のアルファブレンドあるだろ。
ヘルプよく読めと何度言えば…
64デフォルトの名無しさん:2008/11/30(日) 18:25:33
もういいです。
蛇足なのでここで終了。
65デフォルトの名無しさん:2008/11/30(日) 18:40:54
>>63
ねーよ馬鹿
66デフォルトの名無しさん:2008/11/30(日) 22:42:49
http://msdn.microsoft.com/en-us/library/ms532306.aspx
>>38のいう正しい式での計算って、SourceConstantAlphaで
アルファ値を指定した場合だけのように見える。

Src.Alphaに対してSrc.Red * Src.Alpha + (1 - Src.Alpha) * Dst.Redのような
計算を行う選択肢は見当たらないぞ。
67デフォルトの名無しさん:2008/11/30(日) 23:22:49
>>66
だから不便で使いづらいAPIだっていってるのがここまでの流れだろ
68デフォルトの名無しさん:2008/11/30(日) 23:30:15
話を理解してないのが数人いるみたいだなw
69デフォルトの名無しさん:2008/11/30(日) 23:31:50
>>67
うん。ただ、>>66はそのことに気づいていないでは?と思ったから一応書いてみた。
70デフォルトの名無しさん:2008/11/30(日) 23:37:26
気づいてないのはお前だけ
71デフォルトの名無しさん:2008/12/01(月) 00:11:02
いいや俺も気付いてないぜ
72デフォルトの名無しさん:2008/12/01(月) 00:13:29
気づいていないならレスしないで下さい。ウザイだけです。
73デフォルトの名無しさん:2008/12/01(月) 00:23:27
ウザイならレスしないで下さい。ウザイだけです。
74デフォルトの名無しさん:2008/12/01(月) 00:25:37
ウザイならレスしないで下さい。ナウイだけです。
75デフォルトの名無しさん:2008/12/01(月) 00:38:21

  イ`ヘ
 /: :| ヽ
/ : :/  ヽ ___   _,,,:. .-: :´彡フ
_ノ\_∠: : : : : : : : :`: :-: :,:_:/彡 /
      ( : : : : : : : : : : : : : : `ゝ  /
  マ  r::/: /: : | : : : : : : : : ::\ /
      //: /: : : |: : | |: : |: _: : : :ヽ
  ジ  {/ 7|`\/i: /|:|/|´: : : : :|ヽ
     〉 ,‐-‐、`|7 || |_::|,_|: : :|:::|: |
  で / r:oヽ`    /.:oヽヽ: :|: | :|
     { {o:::::::}     {:::::0 }/: :|N
  っ  | ヾ:::ソ     ヾ:::ソ /|: : |
 !? ヽ::::ー-.. /ヽ ..ー-::: ヽ::| r--ッ
-tヽ/´|`::::::::::;/   `、 ::::::::::: /: i }  >
::∧: : :|: |J   \   /   /::i: | /_ゝ
. \ヾ: |::|` - ,, ___`-´_ ,, - ´|: : :|:::|
   ヽ: |::|\     ̄/ /|  |: : :|: |
76デフォルトの名無しさん:2008/12/01(月) 01:24:50
結論

AlphaBlend APIは糞。
糞APIを作ったMicrosoftは馬鹿。
77デフォルトの名無しさん:2008/12/01(月) 01:34:16
結論

76のウンコは糞。
糞を作った76は馬鹿。
78デフォルトの名無しさん:2008/12/01(月) 01:37:34
>>66
Per-pixel alphaを事前にRGBに賭けておくのは別に不便じゃないだろ。
DIBに読む込む段階で乗算しても、負荷0だろ。

Per-pixel alphaまで動的に変更したいなんてレアな状況以外では
まったく問題ない。
79デフォルトの名無しさん:2008/12/01(月) 01:41:04
RECTの複製って、CopyRect使うのが普通?
普通に代入したりCopyMemoryするのはダメだから、用意されてるの?
80デフォルトの名無しさん:2008/12/01(月) 02:21:57
>>78
Srcが固定ならな
81デフォルトの名無しさん:2008/12/01(月) 02:34:53
>>79
普通に代入でいいんじゃない。
CやC++以外の言語の為に用意されているのかもしれない。
82デフォルトの名無しさん:2008/12/01(月) 04:36:45
CやC++以外の言語でも代入でいいけど
83デフォルトの名無しさん:2008/12/01(月) 08:17:06
世界中の子供に大人気のピカチュウですが、そんな子供たちよりもピカチュウを愛している女性がいます。

http://digimaga.net/uploads/2008/11/world-biggest-pokemon-collection01.jpg
http://digimaga.net/uploads/2008/11/world-biggest-pokemon-collection02.jpg

それが写真の女性なのですが、家も車もやばいくらいピカチュウで一色です。
俗に言う“大人の財力”を惜しげもなく使い、ピカチュウグッズを買い占めている様が目に浮かびます……。

女性の名前が分からないのが残念なのですが、それは2009年のギネスブックで明らかになることでしょう。
彼女はギネスに「世界一のポケモンコレクター」であると申請し、どうやらそれは認められそうです。


http://digimaga.net/2008/11/world-biggest-pokemon-collection.html
pkmncollectors
http://community.livejournal.com/pkmncollectors/1296167.html
84デフォルトの名無しさん:2008/12/01(月) 11:59:59
>>81
構造体を代入できない言語なんてあるのか?
85デフォルトの名無しさん:2008/12/01(月) 12:48:35
APIの変な仕様に合わせてコード書くって馬鹿げた話だよなw
それを「まったく問題ない」で片付けられるプログラマって尊敬してしまう
86デフォルトの名無しさん:2008/12/01(月) 15:31:44
wsprintf() ってfloat, double 変数の format はやってくれないよね。
昔はこれだけのために sprintf() を使うと module が入ってくるので
自前で format していたよ。
87デフォルトの名無しさん:2008/12/01(月) 17:28:00
GDI+でRoundRectって描けないの?
88デフォルトの名無しさん:2008/12/01(月) 17:42:30
自分でパス作って描けってことらしい。
89デフォルトの名無しさん:2008/12/01(月) 18:19:47
>>84
古いC。それすらmemcpyでいいだろうと思うのだが。
90デフォルトの名無しさん:2008/12/01(月) 18:35:29
SetRectEmpty: memset, ZeroMemory
CopyRect: memcpy, CopyMemory
SetRect: 普通に代入する

こんなのAPIで用意する意味が分からん
91デフォルトの名無しさん:2008/12/01(月) 19:32:00
memset相当のランタイムが無い言語のためとか
他のAPIから使われてるからとか
社内の政治的理由とか
アメリカンジョークとか
92デフォルトの名無しさん:2008/12/01(月) 19:33:57
コードサイズ?
93デフォルトの名無しさん:2008/12/01(月) 19:34:02
OOPではメンバに直書きはご法度だからな
Win32APIもオブジェクト指向らしいから
バリバリCのくせに
94デフォルトの名無しさん:2008/12/01(月) 19:46:47
中で別なことしてんじゃね?
なんかcoordinatesがどうとか書いてあるじゃん
95デフォルトの名無しさん:2008/12/01(月) 20:03:06
EqualRect: memcmp
ってのもあるな

>>94
してない。逆汗すれば分かる。

IsEqualGUIDみたいにインライン展開してくれればいいのだが
どう考えてもAPI呼出の方がオーバーヘッド大きいだろ
96デフォルトの名無しさん:2008/12/01(月) 20:03:18
むしろ何もしねーよって書いてあるだけじゃん
97デフォルトの名無しさん:2008/12/01(月) 20:33:44
昔はプロセス間でAPI実装してるDLLが共有されてたから、どこのアプリでも使うようなコードはなるべくAPIにおいてあったほうがメモリの節約になったんだよ。
98デフォルトの名無しさん:2008/12/01(月) 20:38:23
pdbファイルの情報にアクセスしたいのですが、
どのAPIを使えばいいか知っている方いませんか?
99デフォルトの名無しさん:2008/12/01(月) 20:42:07
dbghelp?
100デフォルトの名無しさん:2008/12/01(月) 20:45:57
>>99
ありがとうございます
101デフォルトの名無しさん:2008/12/01(月) 21:01:57
>>97
>昔はプロセス間でAPI実装してるDLLが共有されてたから
今でもシステムDLLのコード領域は基本的にプロセス間共有だったはず

それに、「CopyRectは使いまくるがmemcpyは一切使わない」アプリなんて無いに等しいから
#define CopyRect(r1,r2) memcpy(r1,r2,sizeof(RECT))
としてもバイナリのサイズはそれほど増えない

>どこのアプリでも使うようなコードはなるべくAPIにおいてあったほうがメモリの節約になったんだよ。
だからこれも当てはまらない
102デフォルトの名無しさん:2008/12/01(月) 21:08:30
>>90
それらAPIが実際どれほど役に立ってるかはわからんが、少なくともSetRect()他はSetRect()他であって、わざわざ違うインターフェイスとを持っているからにはmemset()他とは違うものだって発想はもっておいた方がいいと思うよ。
少なくともWineのコードでは各メンバにそれぞれ値をセットする実装だったし。
103デフォルトの名無しさん:2008/12/01(月) 21:10:23
>>97
CopyMemoryやZeroMemory相手なら、それで納得できるんだけどな。
104デフォルトの名無しさん:2008/12/01(月) 21:12:03
>>102
各メンバにそれぞれ値をセットしていてもコンパイラの最適化でmemset/memcpy相当になるんだよ
そんな事も知らないの?
105デフォルトの名無しさん:2008/12/01(月) 21:25:07
IsEqualGUIDの場合はこういう定義がちゃんとしてあるね
これはつまりOLE開発チームよりUSER開発チームの方が頭が悪いという事だろう

__inline int IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
{
 return !memcmp(&rguid1, &rguid2, sizeof(GUID));
}
__inline int operator==(REFGUID guidOne, REFGUID guidOther)
{
 return IsEqualGUID(guidOne,guidOther);
}
__inline int operator!=(REFGUID guidOne, REFGUID guidOther)
{
 return !(guidOne == guidOther);
}
106デフォルトの名無しさん:2008/12/01(月) 21:26:03
その辺にしとけ。意味のある議論なのかそれは。
107デフォルトの名無しさん:2008/12/01(月) 21:50:06
意味のある議論ですが何か?
108デフォルトの名無しさん:2008/12/01(月) 22:01:47
>>90
SetRect, SetRectEmpty
→ 宣言時以外は構造体の初期化構文が使えないために
   これらの関数がないとメンバを一つ一つ設定することになる
ZeroMemory, CopyMemory
→ Windows名前規則がアッパーキャメルケースなので、memcpyやmemsetは名前的に合わない
CopyRect
→ これは謎
109デフォルトの名無しさん:2008/12/01(月) 22:30:42
>>104
コンパイル後の最適化の結果memcpy相当になるとか、そういう実装の詳細の話じゃなくてね。
最適化の結果同じようなバイナリになるからといって、例えばSetRectEmpty()とmemset(),ZeroMemory()は意味が等価な訳じゃないんだよ。抽象度が違うんだ。
あくまでSetRectEmpty()は『矩形構造体の内容を未設定状態にする』という意味を持たせられていて、
memset(),ZeroMemory()は『指定バイト列のポインタから始めて指定サイズ分の要素を特定の値/あるいは0にする』と言う意味が持たせられている。
結果が同じだからと言って文字列の終端にNULLをセットしないのと同じ発想だよ。
110デフォルトの名無しさん:2008/12/01(月) 22:35:19
>>109
生成されるコードが同じなら、等価とかどうでもいいだろ
上のIsEqualGUIDがその最たる例

つか、こういう屁理屈こねる奴ってまだいるんだな・・・
加齢臭プンプンするんだが
111デフォルトの名無しさん:2008/12/01(月) 22:39:04
つうかインタフェースいっこ挟んでおけば
何かあった時こっそり実装直しやすいだけの話しだろ
112デフォルトの名無しさん:2008/12/01(月) 22:39:38
いちいち煽りを加えないと喋れんのかこの乳臭い糞ガキは
113デフォルトの名無しさん:2008/12/01(月) 22:40:52
確かに加齢臭だの乳臭いだの言い出すと
途端に荒れだして
まさに議論が無意味になるな
114デフォルトの名無しさん:2008/12/01(月) 22:44:30
#define CopyRect(r1,r2) (memcpy(r1,r2,sizeof(RECT)),TRUE)
#define SetRectEmpty(r) (memset(r,0,sizeof(RECT)),TRUE)
#define SetRect(r,l,t,r,b) ((r)->left=l,...略...,TRUE)

こういうのをwinuser.hに定義してしまえばいいのにな
どうせほとんどの人が使ってないAPIなんだし
115デフォルトの名無しさん:2008/12/01(月) 22:46:41
ここでVB厨が乱入
116デフォルトの名無しさん:2008/12/01(月) 22:47:59
俺勉強したてのころは使わなきゃダメなのかと思ってたw
117デフォルトの名無しさん:2008/12/01(月) 22:48:52
>>109
マクロやinlineにしとけって話なのになんでmemsetの話をしてるんだろこの人
118デフォルトの名無しさん:2008/12/01(月) 22:49:24
ZeroMemory あたりは非C言語で利用されそうだけど Rect〜はどうだろうか?
かなり特殊ケースだけど、アライメント調整できない系で、大きさだけあわして使う?
119デフォルトの名無しさん:2008/12/01(月) 22:53:33
>>109
memset(&rc,0,sizeof(RECT));
memcpy(&rcDst,&rcSrc,sizeof(RECT));

ていうかさ、わざわざこんな書き方しないってw
意味がどうって言うよりそもそもタイプするの面倒じゃん

ただ、user32.dllのSetRectEmpty/CopyRectの実装にはmemset/memcpyを使ってると思う
120デフォルトの名無しさん:2008/12/01(月) 23:09:37
RECT操作セットを揃えておいてるだけだろ単純に
copyだけ無いのは何故なんだとか騒ぐ人が出てくるから
121デフォルトの名無しさん:2008/12/01(月) 23:13:55
インライン展開白だのなんだの言ってるけど
今時のPCでそんなもん気にかけたぐらいで性能差出るかよ

過去の遺物みたいなもんを今の時代の論理で考えても答えが出るわけねえだろ
122デフォルトの名無しさん:2008/12/01(月) 23:26:12
性能差出ないと思ってる奴は素人
123デフォルトの名無しさん:2008/12/01(月) 23:27:33
そういう煽りはいいから。
124デフォルトの名無しさん:2008/12/01(月) 23:28:54
APIならこれくらいしてくれよ

BOOL CopyRect(LPRECT lprcDst, CONST RECT *lprcSrc){
 __asm{
  movdqu xmm0, [lprcSrc]
  movdqu [lprcDst], xmm0
 }
}
125デフォルトの名無しさん:2008/12/01(月) 23:34:50
RECTの話ですけど
RightToLeft環境への移植を考えると
.netのRectangleがとっても頭いい実装になってることに
今日感服いたしました。
126デフォルトの名無しさん:2008/12/01(月) 23:38:24
ハァ?
127デフォルトの名無しさん:2008/12/01(月) 23:46:34
>>125
頭の悪い.net厨には普通の事でも頭いいと思ってしまうんですよね、分かります
128デフォルトの名無しさん:2008/12/01(月) 23:51:43
>>110
んなこたぁない。最終的な出力となる機械語が同じだろうが、元のソースコード上で表現している意味が異なることもあるしその逆もある。
例えば104=110の例に挙げているIsEqualGUID()だってそうだ。同じヘッダでIsEqualCLSID(), IsEqualIID()と言う関数がある。
ほぼ同様の処理を行うInlineIsEqual{GUID,CLSID,IID}()と言うバリエーションもあり、マクロとして定義される場合とインライン関数とで定義される場合がある。
しかし、現状の実装ではどのGUID,CLSID,IID比較関数でもほぼ同じような実装をされている。
それは結局CLSIDやIIDがGUID構造体のtypedefとして定義されているためで、そのためIIDをIsEqualCLSID()で比較するなんてことも可能になっているが、
それこそ現状の実装の都合でしかないわけで、結果として同じコードになるからと言ってCLSIDとIIDとGUIDが分かれて存在する意味がないとはならないよ。

>>117
>>90だけ見て『等価な処理を行う関数があるんだからSetRect()その他は存在価値ねーじゃん』ってことかと勘違いしてたよ。
>>95を見ると確かにそういってるな。すまない。

しかしまあ、Win95位からDLLのシンボルとして公開しているものを今更マクロだinline展開だする訳にもいかないだろう。互換性的に考えて。
129デフォルトの名無しさん:2008/12/02(火) 00:01:16
>>128
どうもお前さんは話を飛躍しすぎる癖があるようだぞ。
とりあえず一点だけ突っ込んどくか。

> Win95位からDLLのシンボルとして公開しているものを〜
だから、Win32の時にマクロやinlineに置き換えとけばよかったんだよ
CreateWindowがいい例でしょ
それか、例えばCopyRectならAPIの説明に「代入するのと動作上は同じ」と書いておくとか。
130デフォルトの名無しさん:2008/12/02(火) 00:07:10
GUID,CLSID,IIDの話題なんて誰もしてないのに、ほんと凄い飛躍だね

>>128
周囲から「空気読めないね」ってよく言われない?
131デフォルトの名無しさん:2008/12/02(火) 00:11:59
もういいよ。
違いがあろうが無かろうが何の意味も無いから。
くだらない事でスレを流すな。
132デフォルトの名無しさん:2008/12/02(火) 00:16:45
>>129
*Rect()程度の処理をわざわざAPIで提供して関数呼び出し分のオーバーヘッドを課すのは無駄だ、ってのはそのとおりだと思うよ。
しかし、VB(後にはJ++とか)というC言語以外の主要なAPIを使用するクライアントがあるんだし、C言語でのバイナリ構造を直に弄らせることはできなかったんだろう。
(J++なんかCのバイナリ直接弄れないはずだし、VBのユーザー定義型だって初期にはなかったんじゃないかな)
その辺を隠蔽するためのRECT構造体に対するインターフェイスとして*Rect()は『API』でなければならなかったじゃないかな。
CreateWindow()だってきっと同じことだろう。マクロで定義した場合の多少の処理速度よりモジュールの共有、再利用性を考えたんだろうさ。
inlineキーワードが生まれたのはWin95が世に出るより後だろうし、その頃には元のAPIをinline化したらやばいしね。
133デフォルトの名無しさん:2008/12/02(火) 00:34:56
どうせ煽りあいしかしないくせに
スレを流すなも糞もないわな
レス控えて地球環境に配慮ってか?
134デフォルトの名無しさん:2008/12/02(火) 00:47:38
そもそも>>90が勝手にWin32==C言語を前提にしてアホな質問するから
inline化してる方が頭良いとか変なのが湧くんだよ
135デフォルトの名無しさん:2008/12/02(火) 01:12:45
>>90が一人で頑張ってるようにしか見えませんが
136デフォルトの名無しさん:2008/12/02(火) 01:17:05
俺だって頑張ってるのに
なんで皆認めてくれないんだ
137デフォルトの名無しさん:2008/12/02(火) 01:24:20
>>134
Win32はC言語前提じゃん
馬鹿ですか?
138デフォルトの名無しさん:2008/12/02(火) 01:29:03
Win32がVBなんか意識してるわけ無いでしょ

VB5でAddressOfが追加されるまでコールバック関数すら渡せなかったし
タイプライブラリ作らないとCOMインターフェイスも使えなかったのに、何言ってんだか・・・
139デフォルトの名無しさん:2008/12/02(火) 01:31:23
win32apiっつうかplatform sdkの.hには結構な数のinline関数があるよ

たとえばwinbase.hには InterlockedIncrement
mstcpip.h にもいくつか
grepしたが44ファイルに__inlineキーワードがある

inline化してもDLLにシンボル残しておけば互換性的には問題ないと思うが、どうか?

あとVCはC言語でも__inlineが使えるんだとさ
140デフォルトの名無しさん:2008/12/02(火) 01:33:25
pngファイルを表示するアプリを作ったわけだが
pngファイルを暗号化するみたいなのってあるの?

フォルダ内からpngファイル取得してライブラリで読み込んでるんだけど(非GDI+)
pngファイルをどうしても第三者に表示させたりしたくないときってみんなどうしてるのかな

リソースにいれるとかはなしにして。

拡張子かえるだけじゃいけないよね
141デフォルトの名無しさん:2008/12/02(火) 01:36:26
んなこたわかってる

黙ってろ
142デフォルトの名無しさん:2008/12/02(火) 01:38:19
>>139
上に挙がってるIsEqualGUIDはole32.dllにもエクスポートされてた


てことは>>105
> これはつまりOLE開発チームよりUSER開発チームの方が頭が悪いという事だろう
が結論かw
143デフォルトの名無しさん:2008/12/02(火) 01:42:29
満足したか?カス共
144デフォルトの名無しさん:2008/12/02(火) 01:44:34
>>129
どうでもいいAPIだから放置されてるだけじゃね?
互換性のために残す必要はあるけど。
145カス共:2008/12/02(火) 01:46:42
頭の固いオッサン共を論破できて大変満足しております^^
146デフォルトの名無しさん:2008/12/02(火) 01:50:06
>>140
普通は人に見せたくなかったらPNGなんていう汎用的なフォーマットではなく
独自フォーマットにする。
147デフォルトの名無しさん:2008/12/02(火) 01:55:18
>>146

さんくす

独自フォーマットかぁー、画像を独自フォーマットにするのってどうやるんだろ
148デフォルトの名無しさん:2008/12/02(火) 02:00:41
独自フォーマットや独自アーカイブにしても
いずれ誰かがリバースエンジニアしてsusieプラグインが出回るってオチ
149デフォルトの名無しさん:2008/12/02(火) 02:00:46
手っ取り早いのは暗号論的乱数を作ってXORしてしまう
どうせ誰も見ないよ
150デフォルトの名無しさん:2008/12/02(火) 02:03:50
>>149

そうすると形式はpngのまま?
そうすると中身ひらくとぐちゃぐちゃとか?
151デフォルトの名無しさん:2008/12/02(火) 02:07:12
すまそ。
150の日本語が微妙ですね。訂正しまつ
152デフォルトの名無しさん:2008/12/02(火) 02:16:35
>>148
誰もリバースエンジニアリングしたいと思わない糞アプリを作れば
その心配はいらない。

そういえば、DL販売の写真集がPrintScreenでキャプチャされて
配布されてるのを見たことあるなw
せっかく元のファイルは暗号化されてるのに涙目
153デフォルトの名無しさん:2008/12/02(火) 02:17:05
WinAPIとまったく関係ないところで GetMessage とか書いたら、GetMessageW に名前変わっちゃうんだけど、どうしようもないの?
上の方でインライン関数って話出てたけど、こういうのもマクロじゃなくてインライン関数にしちゃえばいいのに。
154デフォルトの名無しさん:2008/12/02(火) 02:21:31
>>153
別にいいじゃん。何か問題でも?
155デフォルトの名無しさん:2008/12/02(火) 03:02:57
>>154
class Hoge
{
 void GetMessage() { }
 void GetMessageW() { }
};

A系とかW系とかAPIとは関係ないつもりで書いたとしても、偶然名前が一致してしまったら
問答無用で置き換えられて二重定義になってしまう。
156デフォルトの名無しさん:2008/12/02(火) 03:33:14
偶然一致しないような名前つければ?
てかA/W系でないのにWで終わる関数名ってどうよ
157デフォルトの名無しさん:2008/12/02(火) 03:45:33
マクロundefしとけ
158デフォルトの名無しさん:2008/12/02(火) 03:51:14
class Hoge
{
 void MessageWoGetSuru() { }
 void MessageWoGetSuruWa() { }
};

こうやって関数名に日本語を混ぜればまず衝突しない
159デフォルトの名無しさん:2008/12/02(火) 06:37:55
GetMessage(w
160デフォルトの名無しさん:2008/12/02(火) 08:46:25
こーゆー馬鹿なのに自分の無知をしたり顔で述べる連中がどうして絶えないのかな。


14 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2008/12/02(火) 03:46:46 ID:???
DDR3になっても32ビットOSじゃ4GBですら使いきれない

161デフォルトの名無しさん:2008/12/02(火) 08:49:35
個人的には蒸し返すバカがなぜ消えてなくならないのかの方が疑問だ。
162デフォルトの名無しさん:2008/12/02(火) 09:08:43
個人的には蒸し返されるような馬鹿発言するバカがなぜ消えてなくならないのかの方が疑問だ。
163デフォルトの名無しさん:2008/12/02(火) 09:13:55
そうでもないよ。
164デフォルトの名無しさん:2008/12/02(火) 09:15:04
そうだよ
165デフォルトの名無しさん:2008/12/02(火) 09:24:51
VIPでやれ
166デフォルトの名無しさん:2008/12/02(火) 09:51:00
VIPでやりなさい
167デフォルトの名無しさん:2008/12/02(火) 11:08:33
VIPでやりました
168デフォルトの名無しさん:2008/12/02(火) 14:28:53
乗り遅れてしまって悔しいので蒸し返すぜ
CopyRect の存在意義は
名前による意味づけと引数チェックだ

「ポインタの型なんて区別しないし、変数名なんて飾りだ」
って人には必要ないのだろうな
169デフォルトの名無しさん:2008/12/02(火) 14:48:03
個人的には蒸し返すバカがなぜ消えてなくならないのかの方が疑問だ。
170デフォルトの名無しさん:2008/12/02(火) 14:48:57
PAEとかないと4GBまでだろ
171デフォルトの名無しさん:2008/12/02(火) 18:01:41
人気格闘ゲーム「ストリートファイター」映画化、主人公は美少女チュンリー!

対戦格闘ゲームのブームを巻き起こし、世界中で社会現象となった「ストリートファイター」。そのゲームのキャラクターとして
最も高い人気を誇る女性格闘家チュンリーを主人公にした「ストリートファイター ザ・レジェンド・オブ・チュンリー」が日本に上陸する。

可憐にして最強、美少女チュンリーを演じるのはクリスティン・クルック。大抜擢されたクリスティンは1982年生まれ、
カナダバンクーバー出身。2001年より、海外ドラマ「ヤング・スーパーマン」のヒロイン役で出演し、
注目を浴びたハリウッドの新生。空手は紫帯を持ち、新体操も習っていて開脚を得意とする。まさにチュンリーを演じるにふさわしいヒロインだろう。

そのほかの気になるキャストは、「グリーンマイル」のマイケル・クラーク・ダンカン、「ターミネーター4」のムーン・ブラッドグッド、
「ローラーボール」のクリス・クライン。監督は「ロミオ・マスト・ダイ」「DOOM ドゥーム」などのアクション映画を得意とするアンジェイ・バートコウィアク。

続きは以下で
http://www.hollywood-ch.com/topics/08120208.html

チュンリー
http://www.streetfightermovie.net/wp-content/themes/test/images/kk.jpg

バイソン
http://www.streetfightermovie.net/wp-content/themes/test/images/nm.jpg

ナッシュ
http://www.streetfightermovie.net/wp-content/themes/test/images/ck.jpg

バルログ
http://www.streetfightermovie.net/wp-content/themes/test/images/mcd.jpg ←グリーンマイルの人

ベガ
http://www.streetfightermovie.net/wp-content/themes/test/images/tb.jpg
172デフォルトの名無しさん:2008/12/02(火) 18:07:24
>>168
それだったら、インライン関数でいいじゃないという意見が出ている。
173デフォルトの名無しさん:2008/12/02(火) 18:08:44
>>168
CopyRectの存在意義はあるかも知れない
だがお前の存在意義は確実に無い
174デフォルトの名無しさん:2008/12/02(火) 20:29:13
( ´゚д゚`)えーーー

>バルログ
>http://www.streetfightermovie.net/wp-content/themes/test/images/mcd.jpg ←グリーンマイルの人
175デフォルトの名無しさん:2008/12/02(火) 21:59:23
>>153
#pragma push_macro("hoge")
#undef hoge
//hogeを使う
#pragma pop_macro("hoge")

これだと最後に再定義しなおさなくて済む
176デフォルトの名無しさん:2008/12/02(火) 22:22:21
>>175
Hoge::GetMessageの呼出箇所で毎回そんなの書くなんて馬鹿げているというか馬鹿
APIと衝突しないような名前を付ければ済むだけだし結論出てる
177デフォルトの名無しさん:2008/12/02(火) 23:06:52
そりゃそうなんだが、IGNOREがマクロに使われてるとか、泣けてくる。
178デフォルトの名無しさん:2008/12/02(火) 23:31:35
マクロで泣くといえばmin,maxだろ
179デフォルトの名無しさん:2008/12/02(火) 23:39:22
まず#define NOMINMAXから書き始めている。
180デフォルトの名無しさん:2008/12/03(水) 00:36:18
いくらC++より歴史が古いからって、STLと一緒に使えないなんてホント終わってるよな
181デフォルトの名無しさん:2008/12/03(水) 01:11:09
終わってるのは同意だが、一緒に使えるように対応してるだけ評価しろよ
182デフォルトの名無しさん:2008/12/03(水) 01:42:57
ウィンドウのスタイルと拡張スタイルのマクロの値って、被っちゃってますよね?一つのDWORDで両方を
同時に指定するのってできないですか?
183デフォルトの名無しさん:2008/12/03(水) 01:56:10
DWORD dwExStyle, // 拡張ウィンドウスタイル
DWORD dwStyle, // ウィンドウスタイル

指定する場所から違うわけだが
何をどうしろって?
184デフォルトの名無しさん:2008/12/03(水) 02:03:53
プログラムからスタートアップの登録ってレジストリのみ?

XPとvista両方のOSで同じことさせたいんだけど、スタートアップのレジストリパス
ってこの二つのOSは同じ?


185デフォルトの名無しさん:2008/12/03(水) 02:10:46
スタートアップフォルダ、レジストリ、タスク
186デフォルトの名無しさん:2008/12/03(水) 02:11:22
>>185

なるほどー、レジストリに書き込みしなくてもフォルダにショートカットいれれば
おkなわけね、サンクス!
187デフォルトの名無しさん:2008/12/03(水) 04:00:25
もちろん、レジストリでもXPとVistaで違うわけないよ。
じゃないとみんなVistaで動かなくなるでしょ。

仮にもし変わっていたとしてもXPと同じ方法にしておけば大丈夫(もちろん実際には変わっていないが)。
当面は互換性のために昔と同じ方法が通用するはずだ。
188デフォルトの名無しさん:2008/12/03(水) 04:16:10
実際、Vistaで動かなくなってるアプリケーションなんて五万と存在するがな。
189デフォルトの名無しさん:2008/12/03(水) 04:53:59
Win32の互換性が薄くなってきてるんだろうな
要するに.NET使えってことでしょ
190デフォルトの名無しさん:2008/12/03(水) 05:51:51
ウェーン
191デフォルトの名無しさん:2008/12/03(水) 06:40:50
>>189
お断りします
        お断りします
            お断りします
      ハ,,ハ ハ,,ハ ハ,,ハ ハ,,ハ
     ( ゚ω゚ )゚ω゚ )゚ω゚ )゚ω゚ )  お断りします
    /    \  \  \  \    お断りします
  ((⊂  )   ノ\つノ\つノ\つノ\つ))   お断りします
     (_⌒ヽ ⌒ヽ ⌒ヽ ⌒ヽ       お断りします
      ヽ ヘ } ヘ }  ヘ } ヘ }
  ε≡Ξ ノノ `Jノ `J ノ `J ノ `J
192デフォルトの名無しさん:2008/12/03(水) 09:44:57
SilverlightでC#使ってみてかなり良いとは思ったが、
このスレに出張してくる信者は超キモい。
193デフォルトの名無しさん:2008/12/03(水) 09:48:56
いちいち信者認定してる奴の方がキモイわ
194デフォルトの名無しさん:2008/12/03(水) 12:55:31
>>174
海外版はバルログ・バイソン・ベガの名前が入れ替わってるんだわ。
いやしかしその笑顔、素敵すぎるw
195デフォルトの名無しさん:2008/12/03(水) 18:22:15
ここで.NETマンセーしてるクソガキはこいつだろw

> 231 名前:221[sage] 投稿日:2008/11/18(火) 00:11:20
> あるよ。
> 時間も指定できるし。
>
> あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw
> フリーソフトにすら公開してねーけどw


こんなゴミしか作れないレベルだから.NETスレで話題についていけなくて
Win32スレで人を見下したい気分になるのだよ。
196デフォルトの名無しさん:2008/12/03(水) 18:24:52
Win32の互換性が薄くも何も何かに依存しすぎたプログラム書いてると
Vistaで動作しないだけの話で、Windows3.0時代のプログラムも動くものはVistaでも動くぞ?
197デフォルトの名無しさん:2008/12/03(水) 18:30:01
動かねーよばか
198デフォルトの名無しさん:2008/12/03(水) 18:31:41
問題になるのはセキュリティがらみ(UAC,セッション分離など)とエミュレーションの不備(IME,GDI)くらいだな
後はDOS互換環境の日本語関連機能削除
199デフォルトの名無しさん:2008/12/03(水) 18:39:39
VPCを無料化したという事は、今後はAPIの互換性を切り捨てる方向で行きますって事だろ
Windows7が出たら、もっと動かないアプリが続出すると思うよ
200デフォルトの名無しさん:2008/12/03(水) 18:45:20
>>197
いや、動く奴は動くはずだが・・・
Windowsの仕様まともに理解してればわかるけど。
201デフォルトの名無しさん:2008/12/03(水) 18:49:48
クリックしたらそこに今持ってるペンで点を描きたいんだけど
どうしたらよろしいでしょか??
202デフォルトの名無しさん:2008/12/03(水) 18:51:38
>>200
お前がWindowsの仕様をまともに理解してないのは分かった
203デフォルトの名無しさん:2008/12/03(水) 19:00:11
api直接叩いてるソフトはそのまま動くよ
でもWindowsの仕様自体が9x系とNT系で分かれてるから
それに依存した設計になってると
実装依存の書き方してなくても結局正常に動かないんだよね
204デフォルトの名無しさん:2008/12/03(水) 19:42:59
>>201
LineToでも使え
205デフォルトの名無しさん:2008/12/03(水) 19:46:32
ポート445(ダイレクトホスティングSMB)が空いているかどうか
チェックしたいのですが、方法やAPIを教えてください。
サンプルソース(URL)があればもっと助かります。
C++かMFCでお願いします。
206デフォルトの名無しさん:2008/12/03(水) 19:54:36
ttp://game.watch.impress.co.jp/docs/20070927/wv.htm
MSの中の人ですらこんな風にVistaで動かないコードを平気で書くのだからな
207デフォルトの名無しさん:2008/12/03(水) 19:54:46
socket開いてlistenすると使用中ならWSAEADDRINUSE返すよ

ネットワークスレのほうがいいかも
208デフォルトの名無しさん:2008/12/03(水) 19:55:49
>何かあるとOSのせいになる

OSのせいでなくともMSのせいではあったな(遠い目)
209デフォルトの名無しさん:2008/12/03(水) 20:04:08
MSのサンプルコード見ながら作ったら後のOSで動かないなんてのは珍しくないだろ。
で、その都度サンプルコードも修正されてる。つまりそういうこと。
210デフォルトの名無しさん:2008/12/04(木) 00:45:53
>>204
MoveToEx(x,y);
LineTo(x,y);
は出ないのよ
LineToの仕様で終点を描画しないから
211名無し募集中。。。:2008/12/04(木) 00:49:37
でもLineToは始点を描画するから描画するんじゃないかなー
と思ったけどSetPixelでどうぞ
212デフォルトの名無しさん:2008/12/04(木) 00:51:11
終点だけSetPixelVで描け
213204:2008/12/04(木) 00:59:37
ペンって言われたからしょうがねーじゃん
214デフォルトの名無しさん:2008/12/04(木) 01:15:58
>>211
残念ながら出ないのです

>>212
SetPixelVとやらを調べとく

>>213
そう ペンがいいの

総括:
MoveTo→LineToじゃ同点同士は描けない
SetPixelはペンじゃないから芳しくない
215デフォルトの名無しさん:2008/12/04(木) 01:19:14
じゃあ1ピクセルだけずらせば始点も出るし終点は描画ざれないんだからちょうど良いじゃん
216デフォルトの名無しさん:2008/12/04(木) 01:42:25
>描画ざれない
どこの方言?
217デフォルトの名無しさん:2008/12/04(木) 01:46:38
マイクロソフト帝国
218デフォルトの名無しさん:2008/12/04(木) 01:48:42
>>216わーすごい!よく見つけたね〜!
219デフォルトの名無しさん:2008/12/04(木) 08:15:29
>>215
つまり小細工するしかないってこと?
220デフォルトの名無しさん:2008/12/04(木) 09:37:53
>>210
うろ覚えだが、GM_ADANCED でもダメか?
221名無し募集中。。。:2008/12/04(木) 12:48:30
>>215 これに1票
小細工というかTipsって感じじゃないのかな
ノウハウやテクニックというと大げさだし
222デフォルトの名無しさん:2008/12/04(木) 15:20:48
Windows7ではUIがMacチックになるとか取り沙汰されてるのだが、
もし大変革ということになったら、Win32APIもいよいよ役に立たなくなるのかな…
223デフォルトの名無しさん:2008/12/04(木) 15:25:34
ありえないな
224デフォルトの名無しさん:2008/12/04(木) 15:26:06
VistaのときもXPのときも毎回同じようなことが言われたが結局今まで通りという罠。
225205:2008/12/04(木) 15:30:11
>>207
具体的にsocket開いてlistenするには、どのようなAPI、クラスを
用いればよいのでしょうか?
教えてください
226デフォルトの名無しさん:2008/12/04(木) 15:41:35
WinSock2
227デフォルトの名無しさん:2008/12/04(木) 15:50:01
>>225
ググるかマニュアル読むかぐらいしろカス
http://msdn.microsoft.com/ja-jp/library/7h61d04c.aspx
228デフォルトの名無しさん:2008/12/04(木) 21:35:26
UIがMacチック(笑)
229デフォルトの名無しさん:2008/12/04(木) 21:50:01
7っつても6.1らしいし、心配なのはタスクバー周りぐらいでしょ。
230デフォルトの名無しさん:2008/12/04(木) 22:28:49
タスクバーにフォアグラウンドウィンドウのメインメニューが出たりするのん?
231デフォルトの名無しさん:2008/12/04(木) 22:43:07
WPF使えっつってもねえ・・・
232デフォルトの名無しさん:2008/12/05(金) 01:50:09
クイック起動みたいに、ツールバーをデスクトップに貼り付けて
拡大縮小時も隠れないようにしたいんですが、どのAPIを調べれば解りますか?
233デフォルトの名無しさん:2008/12/05(金) 01:51:37
234デフォルトの名無しさん:2008/12/05(金) 11:33:22
コモンダイアログで選択したファイルの場所が

static TCHAR filename_full[MAX_PATH];

に格納されています。

このファイルを読み込むのにconst charを引数にした読み込み関数に渡したいんですが、どうやって変換すればいいでしょうか?

VS2008を使っています
235デフォルトの名無しさん:2008/12/05(金) 11:58:51
>>234
UNICODEプロジェクト?

WideCharToMultiByteで変換すれ
236デフォルトの名無しさん:2008/12/05(金) 12:00:21
>>235
プロパティの文字セットのところですよね?

Unicode文字セットを使用するの設定になってます
237デフォルトの名無しさん:2008/12/05(金) 12:00:42
>>236
CT2CA(filename_full)
238デフォルトの名無しさん:2008/12/05(金) 12:17:25
>>237

filename_c = CT2CA(filename_full);

こうですか?識別子が定義されてないって言われます・・・
239デフォルトの名無しさん:2008/12/05(金) 12:22:42
マルチバイトにすれば解決なんだが、質問者はunicodeのまま何とかしたい、ということか?
だったら>>235の通り。
240デフォルトの名無しさん:2008/12/05(金) 12:24:15
char型はunicodeなんですか?
241デフォルトの名無しさん:2008/12/05(金) 12:26:04
WIN32APIのプロジェクトのプロシージャから過去のcで出来た関数を呼び出すとします。この関数内にprintfなどの関数が使われていた場合どうなりますか?
242デフォルトの名無しさん:2008/12/05(金) 12:29:48
そりゃリンクしたライブラリのprintfが呼ばれるだろう
243デフォルトの名無しさん:2008/12/05(金) 12:30:58
>>238
読み込み関数(CT2CA(filename_full));

ただ、ATLのテンプレートだから、AtlBase.hのインクルードが必要。
244デフォルトの名無しさん:2008/12/05(金) 12:31:37
標準出力の扱いがどうなるかってこと聞いてるような気がする
245デフォルトの名無しさん:2008/12/05(金) 12:45:30
>>244
そうです。
ためしにやってみたところprintfはされてないきがするんですが・・・
246デフォルトの名無しさん:2008/12/05(金) 13:13:12
printf そのものは動作している
標準入出力の出力先が無いだけ
AllocConsole なりすれば?
247デフォルトの名無しさん:2008/12/05(金) 13:18:02
そのことによって問題はおきていますか?
248デフォルトの名無しさん:2008/12/05(金) 13:21:29
XNResource Editorでダイアログボックスをつくっています。

コンボボックスを配置したんですが、ドロップダウンしたときの項目はここではつくれないんですか?
249デフォルトの名無しさん:2008/12/05(金) 13:54:21
コードで CB_ADDSTRING していくしかないんじゃね?
250デフォルトの名無しさん:2008/12/05(金) 14:35:35
モザイク無し、後藤麻衣のアソコ丸出しDVDがAmazonで普通に売られている件
http://dubai.2ch.net/test/read.cgi/news/1228450991/
251デフォルトの名無しさん:2008/12/05(金) 16:27:59
IDC_CHECKBOXってチェックされてるかされてない状態をどうやって返してくれるんですか?
252デフォルトの名無しさん:2008/12/05(金) 16:31:02
253デフォルトの名無しさん:2008/12/05(金) 16:51:47
>>252
できましたでやんす!
254デフォルトの名無しさん:2008/12/05(金) 17:48:26
cout<<"i;"<< i <<endl;
これをメッセージボックスで置き換えるにはどうするんですか?
255デフォルトの名無しさん:2008/12/05(金) 17:56:18
sprintf で文字列にしてしまえばどうにでもなるべ。
256デフォルトの名無しさん:2008/12/05(金) 18:05:27
257名無し募集中。。。:2008/12/05(金) 18:06:28
std::ostringstream osr;
osr<<message;
AfxMessageBox(osr.str().data());
258デフォルトの名無しさん:2008/12/05(金) 18:09:43
259デフォルトの名無しさん:2008/12/05(金) 19:19:07
>>257
Afxmessageがつかえないんですが・・・
260名無し募集中。。。:2008/12/05(金) 19:22:09
MessageBoxでもprintfでも何でもいいじゃない
261デフォルトの名無しさん:2008/12/05(金) 19:26:49
MessageBox( NULL, osr.str(), _T("メッセージ"), MB_OK );

これだとLPCWSTRに変換できないっておこられて・・・
262デフォルトの名無しさん:2008/12/05(金) 19:47:14
263デフォルトの名無しさん:2008/12/05(金) 19:50:20
std:stringをTCHARに変換できないの?
264名無し募集中。。。:2008/12/05(金) 19:53:45
.data() はどうした?
265デフォルトの名無しさん:2008/12/05(金) 19:55:13
MultiByteToWideChar
266デフォルトの名無しさん:2008/12/05(金) 19:58:46
MultiByteToWideCharなんかつかわねーよw
267デフォルトの名無しさん:2008/12/05(金) 20:09:49
>>265
検索したんだけど、使い方がわからない・・・
268デフォルトの名無しさん:2008/12/05(金) 20:10:15
269デフォルトの名無しさん:2008/12/05(金) 20:14:59
::MessageBoxA(NULL, ostr.str().c_str(), "hoge", MB_OK);
270デフォルトの名無しさん:2008/12/05(金) 20:15:51
最初っから
std::basic_ostringstream<TCHAR>
でやれよ。
つかC++とかWin32とかいうレベルじゃないからVB.NETでもやってろよ。
271デフォルトの名無しさん:2008/12/05(金) 20:26:47
>>270
うるせー馬鹿
272デフォルトの名無しさん:2008/12/05(金) 20:45:48
いませっかく書いたコードを保存したらVC6が固まってしまって
30分放置しても固まったままで、他のプロセスを殺したりしても
固まったままなんだが、どうしたらいいですか?
273デフォルトの名無しさん:2008/12/05(金) 20:46:48
APIスレで聞く話じゃない
274263:2008/12/05(金) 20:47:28
>>270
それ自分へのレスですか?
275デフォルトの名無しさん:2008/12/05(金) 20:54:18
basic_ostringstream<TCHAR> os;
int i=1;

os<<"データ:"<< i <<endl;

MessageBox( NULL, os.str().data(), _T("メッセージ"), MB_OK );


 カタカナが文字化けしてしまいます・・・
276デフォルトの名無しさん:2008/12/05(金) 20:55:10
ふ〜ん
277デフォルトの名無しさん:2008/12/05(金) 21:08:54
知らないならレスしないで下さい。ウザイだけです。
278デフォルトの名無しさん:2008/12/05(金) 21:13:35
カナが文字化けしてるんじゃなくて、_T()忘れてるせいで文字列がポインタだと認識されて、そのアドレスが表示されてるオチに3カノッサ
279デフォルトの名無しさん:2008/12/05(金) 21:24:02
素直にMBCSでビルドした方が時間の節約だな。
280デフォルトの名無しさん:2008/12/05(金) 21:29:41
後、可能性としてはlocale関連もあるな
281デフォルトの名無しさん:2008/12/05(金) 21:39:02
>>275
さっきからこの馬鹿はなぜWin32スレでSTLの質問をしてるの?
282デフォルトの名無しさん:2008/12/05(金) 21:40:36
>>278
_Tってどうやってつけるんですか?
iの値は出てるんですけどねぇ
283デフォルトの名無しさん:2008/12/05(金) 21:41:08
iostreamはSTLじゃねーだろ。まあいずれにせよスレ違いだが。
284デフォルトの名無しさん:2008/12/05(金) 21:54:26
>>282
スレ違いウザイから他所行け
285デフォルトの名無しさん:2008/12/05(金) 21:54:39
C++のスレできけばいいですか?
286デフォルトの名無しさん:2008/12/05(金) 21:55:10
おう









287デフォルトの名無しさん:2008/12/05(金) 21:56:13
>>282
#include <TCHAR.h>

TCHAR szBaka = _T("馬鹿");
288デフォルトの名無しさん:2008/12/05(金) 21:58:38
> TCHAR szBaka = _T("馬鹿");
自分が馬鹿だってよく分かってるみたいね
289デフォルトの名無しさん:2008/12/05(金) 21:59:16
TCHAR szBaka
TCHAR szBaka
TCHAR szBaka
290デフォルトの名無しさん:2008/12/05(金) 22:00:52
>>288=>>289=馬鹿
291デフォルトの名無しさん:2008/12/05(金) 22:01:56
[]ないけど、確か[]無くても無理やりは入るぞw
292デフォルトの名無しさん:2008/12/05(金) 22:04:21
> error C2440: 'initializing' : 'unsigned short [3]' から 'unsigned short' に変換することはできません。

>>291
ばーか
293デフォルトの名無しさん:2008/12/05(金) 22:05:08
そろそろ違うネタを頼む
294デフォルトの名無しさん:2008/12/05(金) 22:05:37
ん?悔しかったの?www
295デフォルトの名無しさん:2008/12/05(金) 22:07:57
IDがないって便利だな。
[]は付け忘れただけだwww
296デフォルトの名無しさん:2008/12/05(金) 22:09:00
他人を馬鹿にしようとして逆に己の馬鹿を露呈した馬鹿がいるようだ
297デフォルトの名無しさん:2008/12/05(金) 22:41:40
うるせー馬鹿
298デフォルトの名無しさん:2008/12/05(金) 23:30:45
QueryPerformanceFrequency
QueryPerformanceCounter

を使って1秒間に60回ある処理(画面に描くとかを行ないつつ
実際に1秒間に何回処理出来たか計算するには
どーすればいいの?
299デフォルトの名無しさん:2008/12/05(金) 23:33:50
60回では
300デフォルトの名無しさん:2008/12/05(金) 23:53:04
>>298
数えろ
301デフォルトの名無しさん:2008/12/06(土) 00:57:03
http://www.geocities.jp/ky_webid/win32c/036.html



// ダイアログプロシージャ
BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)

のなかで関数func();を呼ぶとします


func()内で

hDC = GetDC( hwnd );
TextOut( hDC, 55, 55, Buf, (int)_tcslen(Buf) );
ReleaseDC( hwnd, hDC );

みたいな事をして元のウィンドウに文字を表示したいんですが, hwndをどうやって渡せばいいでしょうか?

CALLBACK DlgProcの第一引数HWND hDlgを

func(hDlg);で渡したんですが表示されないんです。 (関数の定義は func(HWND hwnd)  )
302デフォルトの名無しさん:2008/12/06(土) 01:10:20
>>301
そこは過去スレでもコードが間違ってて正常に表示されないのが指摘された
うんこサイトだから参考にしない方がいい
303デフォルトの名無しさん:2008/12/06(土) 01:21:22
ヽ( ・∀・)ノ● ウンコー

反省するために散歩してくる
304デフォルトの名無しさん:2008/12/06(土) 01:21:59
サンプルソースコードの間違いに気づくようになり、安易にコピペしなくなったら
それはあなたが一人前のプログラマに成長したということ。
だから「敢えて」間違ったコードを載せているんだよ。
305デフォルトの名無しさん:2008/12/06(土) 01:55:32
>>278
いやいやそれが、wostreamにもconst char*とかを流しこめるの。
中ではwidenしているだけでまともな変換をやるわけではないから、ASCII文字列しか使えないけど。
306デフォルトの名無しさん:2008/12/06(土) 02:02:33
wchar_t と WCHAR ってなんか違うの?
307デフォルトの名無しさん:2008/12/06(土) 02:05:10
>>306
Win32APIにおいて、後者は前者のtypedef。

だからこの世界ではごっちゃにしてもいいが、
それを好みとするかどうかは人による。
308デフォルトの名無しさん:2008/12/06(土) 02:05:43
ぬるほど
309デフォルトの名無しさん:2008/12/06(土) 02:11:06
カッ
310デフォルトの名無しさん:2008/12/06(土) 03:27:02
ヵツ
311デフォルトの名無しさん:2008/12/06(土) 10:11:36
APIENTRY と WINAPI はどう違うの?
LPSTR と PSTR みたいに昔のなごりってわけでもなさそうだし
312デフォルトの名無しさん:2008/12/06(土) 10:55:40
#ifdef _MAC
#define WINAPI CDECL
#define APIENTRY WINAPI
#elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
#define WINAPI __stdcall
#define APIENTRY WINAPI
#else
#define WINAPI
#define APIENTRY WINAPI
#endif
313デフォルトの名無しさん:2008/12/06(土) 11:29:56
言葉が足りなかった
常に
#define APIENTRY WINAPI
なのをなんでわざわざ定義してあるのかなと思って
314301:2008/12/06(土) 11:37:03
元ウィンドウのハンドルをダイアログプロシージャから呼ぶ関数にはどうやって渡したらいいですか?
グローバル変数に入れておくのはいやなので・・・

315デフォルトの名無しさん:2008/12/06(土) 11:40:55
元(既に破棄された)ウィンドウなのか親ウィンドウなのか、まさかのInstanceなのかはっきりしてくれ
方法が考え付かないならとりあえず、グローバルに突っ込んで後々別な方法を考えろ。
316デフォルトの名無しさん:2008/12/06(土) 11:43:21
>>314
DiarogBoxに渡した奴なら単に親ウィンドウじゃねーのか
317デフォルトの名無しさん:2008/12/06(土) 11:55:58
>>315
元ウィンドウがあって(ここに文字を表示)

元ウィンドウが作られたらプロシージャでダイアログプロシージャを呼び出す。(設定画面)
そしてダイアログプロシージャで関数を呼び出し元ウィンドウに文字を表示って感じなんですが
318デフォルトの名無しさん:2008/12/06(土) 12:17:36
>>317
じゃあ、元じゃなくって親ウィンドウな。
だったら、多分GetAncestorでできるんじゃね?
319デフォルトの名無しさん:2008/12/06(土) 12:19:55
それか、GetParentじゃね?
320デフォルトの名無しさん:2008/12/06(土) 12:21:15
とりあえず「元ウィンドウ」って表現をやめろよ紛らわしい
321デフォルトの名無しさん:2008/12/06(土) 12:32:56
HWND GetAncestor(HWND hWnd, UINT gaFlags);

ですよね?

HWND A_hWnd;

A_hWnd = GetAncestor(?,GA_PARENT)

第一引数がよくわからないんですが・・・
322デフォルトの名無しさん:2008/12/06(土) 12:49:01
先祖が欲しいならそこには子孫が入るに決まってるだろう
323デフォルトの名無しさん:2008/12/06(土) 12:50:40
WINAPI func()という関数で先祖が欲しいいんですが、子孫のハンドルがわからないんです
324デフォルトの名無しさん:2008/12/06(土) 12:56:16
ダイアログを実際に作ってSpy++で見てごらんよ
親子関係がツリーで表示されるから

一度見た方が早いわ
325デフォルトの名無しさん:2008/12/06(土) 12:56:28
それじゃあ一緒に考えよう
うーん(^_^;
326デフォルトの名無しさん:2008/12/06(土) 12:59:42
自分が誰なのかもわからないのか?重症だな……
それにダイアログボックスと呼び出し元ウィンドウの間は
親子関係というよりオーナー関係だったと思うけど。
そもそも、DialogBoxParamでパラメータ1個渡せるんだから
四の五の言わずにそれ使えばよくね?
327デフォルトの名無しさん:2008/12/06(土) 12:59:50
BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp){

}

のなかでfunc()を呼び出してるんですが、 HWND A_hWnd = GetAncestor(hDlg,GA_PARENT); 
これでいいのかなと思ったらダメみたいです・・・


Spy++ってなんですか?
328デフォルトの名無しさん:2008/12/06(土) 13:04:45
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){

 親ウィンドウ作成時
DialogBox( g_hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc );

}


Windowsプロシージャはこうなってrます
329デフォルトの名無しさん:2008/12/06(土) 13:05:22
>>327
面倒だからこれ使え

INT_PTR DialogBoxParam(
HINSTANCE hInstance,
LPCTSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogFunc,
LPARAM dwInitParam
);

dwInitParam
[in] Specifies the value to pass to the dialog box in the lParam parameter of the WM_INITDIALOG message.
330デフォルトの名無しさん:2008/12/06(土) 13:12:48
BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)


}


LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp){
 
 DialogBoxParam( g_hInst, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc, lp );
}

こうですか?DlgProcのほうでfuncにどうやってハンドルを渡せばいいのですか?
331デフォルトの名無しさん:2008/12/06(土) 13:40:45
・調べる
・試す
10ループしてから人に聞け
つか329の最後の行に使い方書いてあるだろ

1から10まで指示されないとできないなら
プログラム止めて出来合い使ってろ
332デフォルトの名無しさん:2008/12/06(土) 13:50:00
>>330には>>329の英文がハナから視界に入っていなかったのであった。(読めないから)
333デフォルトの名無しさん:2008/12/06(土) 14:41:18
あんまりWin32APIとは関係ない気もしますが・・
質問させてください。

SetCursorPos()が失敗する原因ってなんでしょうか?
具体的に言っちゃうと、DirectX3Dを使用している
アプリケーション(ゲームです)上で
オートでマウスを動かしたいんですが、
Getはできるのに、Setはできない・・

散々ググったんですが、理由が分かりません。
神様いたらお願いしますm(_ _)m
334デフォルトの名無しさん:2008/12/06(土) 14:50:54
DrawTextでテキスト描画してるんですが、別のウィンドウとかが重なるときえてしまいます。
こうならないための方法はあるんですか?
335デフォルトの名無しさん:2008/12/06(土) 14:52:19
>>334
消えたらまた描けばいい
そのための仕組みがWM_PAINT
336デフォルトの名無しさん:2008/12/06(土) 14:53:28
>>333
GetLastErrorは?
あとSetしたあとにGetしてみた?
337デフォルトの名無しさん:2008/12/06(土) 14:58:19
他の絵(別のウィンドウ)で塗りつぶせば元の絵は消えちゃうのは当たり前(レイヤーでもない限り)
逆に自動で復活してたら気持ち悪い
338デフォルトの名無しさん:2008/12/06(土) 14:58:45
>>335

つまり処理関数→buff→描画→処理→buff→描画みたいなやりかただと
できないってことですか?
339デフォルトの名無しさん:2008/12/06(土) 15:00:40
>>338
変な図じゃなくて日本語でおk
340デフォルトの名無しさん:2008/12/06(土) 15:12:57
>>339

ある関数で計算した結果を描画するとします
1回目の処理であいうえおって結果
2回目の処理でかきくけこって結果だとして


あいうえお かきくえこ ・・・・と描画したいんです。
341デフォルトの名無しさん:2008/12/06(土) 15:18:30
>>340
別に描画は好きなタイミングでいいけど、
WM_PAINTでその描画をいつでも再現できるようにしとかないと。
342デフォルトの名無しさん:2008/12/06(土) 15:19:33
>>341
つまり各回の結果を保持しておかないとだめという事ですか?


343デフォルトの名無しさん:2008/12/06(土) 15:23:05
それを元に描画するならそうだね。
もしくは、ビットマップに描画してそれを転送するようにするとか
344333:2008/12/06(土) 15:46:49
333です。レスありでした。
GetLastError()すっかり頭から抜けてました。

というわけでデバッグ文出力やってみたんですが、
Cursor handle is 0x00380367 , position is 248 184
bret = 0 GetLastError() = 126

126: 指定されたモジュールが見つかりませんでした。
なんでしょうか、、これは。。

分かるかたいますでしょうか。
345デフォルトの名無しさん:2008/12/06(土) 15:47:05
オフスクリーン描画を使うといい
CreateCompatibleDC オフスクリーンあたりでぐぐれば
サンプル出てくるはず
346デフォルトの名無しさん:2008/12/06(土) 15:50:46
もうほっとけよ
自分で調べようとしない奴に何をやらせても無駄だろ
347デフォルトの名無しさん:2008/12/06(土) 16:09:14
知らないならレスしないで下さい。ウザイだけです。
348デフォルトの名無しさん:2008/12/06(土) 16:09:23
349デフォルトの名無しさん:2008/12/06(土) 16:16:16
>>341
WM_PAINTはウィンドウプロシージャにかくんですか?
350デフォルトの名無しさん:2008/12/06(土) 16:20:26
>>349
ググレカス
351デフォルトの名無しさん:2008/12/06(土) 16:21:10
知らないならレスしないで下さい。ウザイだけです。
352デフォルトの名無しさん:2008/12/06(土) 16:27:33
>>3のリンクで勉強したほうがいい
353デフォルトの名無しさん:2008/12/06(土) 17:20:39
フォントサイズがsの文字の横幅ってどうやってわかりますか?x座標単位で換算するとということです
354デフォルトの名無しさん:2008/12/06(土) 17:28:01
GetLogFontとか?
プロポーショナルフォントなら実際の文字列用意してGetTextExtent32とか。
355デフォルトの名無しさん:2008/12/06(土) 17:40:39
>>354
GetLogFont/GetTextExtent32なんてAPIねーよ
うろ覚えで回答するなクズ
356デフォルトの名無しさん:2008/12/06(土) 17:57:06
vectorに入った文字列を次々に表示していくんですが

SetRect( &rc, 20+x, 10+y, 4000, 4000 );


直前の文字列の長さ(*10)をxにプラスして表示していってるんですが、綺麗にならないんですよね。直前の文字列がながいと妙にスペースがあいたりするんです
357デフォルトの名無しさん:2008/12/06(土) 18:06:15
*10というのはどこから?
358デフォルトの名無しさん:2008/12/06(土) 18:13:29
DT_CALCRECT
359デフォルトの名無しさん:2008/12/06(土) 18:14:26
DrawTextでだんだん長さを足していけば。
360デフォルトの名無しさん:2008/12/06(土) 18:28:10
GetLogFontなんてAPIねーとはいうが、WindowsSDKのAPIのAPIがMFCというかなんというか。

まぁ、幅ってGetCharWidthFloatだとかで取得できなかったっけ?
361デフォルトの名無しさん:2008/12/06(土) 18:29:06
>WindowsSDKのAPIのAPIがMFCというかなんというか。
日本語でおk
362デフォルトの名無しさん:2008/12/06(土) 18:31:29
ttp://e-words.jp/w/API.html
まぁ、APIを利用する為のAPIって言いたかっただけです><
363デフォルトの名無しさん:2008/12/06(土) 18:43:52
アイコン(.ico)のアルファ値を殺さずに表示したいんだけどなにかないかな?

仕様調べたらDrawIconだと32BITアルファ値つきビットマップ(メモリデバイス)
に転送してもアルファ値を書き込む機能がDrawIconにはないからアルファ値0のまま転送してなにも表示されないんだよね

どうしたものか・・・


364デフォルトの名無しさん:2008/12/06(土) 18:54:41
Direct3D
365デフォルトの名無しさん:2008/12/06(土) 18:58:18
>>360>>362
うろ覚えで回答したのを正当化しなくていいから。
366デフォルトの名無しさん:2008/12/06(土) 18:58:25
GDI+
367デフォルトの名無しさん:2008/12/06(土) 19:01:01
>>357
1個の文字で10座標ぐらいかな?と思ったんです


>>359
長さを足していくって良くわかりません

第3引数で文字列の長さを指定するとこをながくするということでしょうか?
368デフォルトの名無しさん:2008/12/06(土) 19:05:39
<<366

kwsk
369デフォルトの名無しさん:2008/12/06(土) 19:07:34
TextOutだかDrawTextだか何を使っているかは知らないが、
1度の呼出で全部を表示させるというわけにはいかないの?
vectorなら先頭要素へのポインタを取ればよいのだし。
370デフォルトの名無しさん:2008/12/06(土) 19:08:25
LoadIconじゃなくてLoadImageにLR_CREATEDIBSECTIONつけてDIBSection作ればどうにでもならんか?
371デフォルトの名無しさん:2008/12/06(土) 19:08:29
RPGみたいに一文字ずつ表示したいんじゃないの?
372デフォルトの名無しさん:2008/12/06(土) 19:12:57
>>369
それが楽なんですが、1個1個色を変えたりしたいので・・・
373デフォルトの名無しさん:2008/12/06(土) 19:15:04
>>370

SHGetFileInfoこれでアイコンとる形のプログラムだから、ロードはしないんだよね・・
374デフォルトの名無しさん:2008/12/06(土) 19:33:02
>>365
俺違う人なんだけどw
GetLogFontとかといった人とはw

ある特定のミドルウェア、OS等の環境を利用する為の関数群がAPIだから
APIのAPIは間違ってないよw
375デフォルトの名無しさん:2008/12/06(土) 19:38:15
つーかMFCはスレチだろ
376デフォルトの名無しさん:2008/12/06(土) 19:45:34
waveファイルを再生しながら、マウスをクリック

そのクリックが起きたときのwaveファイルの再生時刻を取得っていうことをするのに適したAPIはなんですか?
377デフォルトの名無しさん:2008/12/06(土) 19:48:33
APIを列挙してよ!


つーか、再生時間カウントしておいてクリックされたのメッセージで処理すりゃいいんじゃねーのか。
378デフォルトの名無しさん:2008/12/06(土) 19:52:30
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
とかでいいですかね?

再生時間のカウントとはどのようにやるんでしょう?
379デフォルトの名無しさん:2008/12/06(土) 19:55:19
>>378
g_tick = GetTickCount();
WavePlay(); // wave再生

// クリック
if( msg==WM_LBUTTONDOWN )
{
 DWORD sec = (GetTickCount() - g_tick) / 1000;
 sprintf(buf,"%u分%u秒",sec/60,sec%60);
 MessageBoxA(hwnd,buf,"再生時間",0);
}
380デフォルトの名無しさん:2008/12/06(土) 19:57:12
WavePlayのところで読み込みとかで時間くったら
うまくいかないだろ
381デフォルトの名無しさん:2008/12/06(土) 20:02:19
再生時間カウントしないでも
再生開始時刻を取得、クリックされた時間を取得して差分を出せばわかるんじゃね?
それか、waveOutGetPositionを使って再生されたバイト数を取得すればできるんじゃね?
382デフォルトの名無しさん:2008/12/06(土) 20:11:29
初代のドラクエとか紙芝居的なゲームの場合
WM_PAINTでかばでキルですか
383デフォルトの名無しさん:2008/12/06(土) 20:16:18
京都は
たのしい
ですか?
384デフォルトの名無しさん:2008/12/06(土) 20:19:45
ダイアログボックスから別のダイアログボックスを呼び出したのですが、こちらでEndDialogをすると元のダイアログボックスも閉じてしまうんですが、どういうことすればいい
385デフォルトの名無しさん:2008/12/06(土) 20:20:41
>>381
それが>>379じゃねーの?
386デフォルトの名無しさん:2008/12/06(土) 20:33:09
>>382
初代のドラクエは紙芝居的じゃないが
387デフォルトの名無しさん:2008/12/06(土) 21:01:44
Icon icon1 = new Icon("test.ico", 32,32);
Bitmap bmp = icon1.ToBitmap();
HDC hdc = GetDC(hWnd);
Graphics MyGraphics(hdc);
MyGraphics.DrawImage(bmp, new Point(30, 30));

こんな感じでアイコンを表示しようと思ってるんだが、これはアルファ値
つきで表示してくれるのかな?

上で質問してたものです。


388デフォルトの名無しさん:2008/12/06(土) 21:21:36
無駄な改行ウザイ
389デフォルトの名無しさん:2008/12/06(土) 21:26:33
>>388

コピペしたらかってについてきたんだこのやろう
390デフォルトの名無しさん:2008/12/06(土) 21:32:04
要するにマルチポストってことか
391デフォルトの名無しさん:2008/12/06(土) 21:35:18
>>390

エディターからだろjk・・・
なんでこういうやつは−方向に物事を考えるのだろうかな
392デフォルトの名無しさん:2008/12/06(土) 21:39:43
まだマルチとか言ってるしな
393デフォルトの名無しさん:2008/12/06(土) 21:42:01
別にマルチポストでもいいだろが
394デフォルトの名無しさん:2008/12/06(土) 21:45:46
くだらん雑談してないでさっさと回答しろ
395デフォルトの名無しさん:2008/12/06(土) 21:48:35
>>387

どうだったかな・・・GDI+だろ?
実際組んでみて確かめてくれ。すまんわからん。

おまえらも回答できないなら無駄なツッコミいれないでスルーしろ
396デフォルトの名無しさん:2008/12/06(土) 21:51:00
Icon icon1 = new Icon("test.ico", 32,32);
Bitmap bmp = icon1.ToBitmap();
HDC hdc = GetDC(hWnd);
Graphics MyGraphics(hdc);
MyGraphics.DrawImage(bmp, new Point(30, 30));

こんな感じでアイコンを表示しようと思ってるんだが、これはアルファ値
つきで表示してくれるのかな?

じゃなくって、やってみればいいだろう
397デフォルトの名無しさん:2008/12/06(土) 21:53:03
>>396

いちいちもってくんな
398デフォルトの名無しさん:2008/12/06(土) 21:56:24
384の回答お願いします
399デフォルトの名無しさん:2008/12/06(土) 21:58:14
>>398
ダイアログボックスをデストロイ!しちゃえばいいじゃない
400デフォルトの名無しさん:2008/12/06(土) 21:59:34
>>387
ここで聞くよりも、試した方が早いと思うぞ
401デフォルトの名無しさん:2008/12/06(土) 21:59:35
>>387
人に聞く前に自分でやってみればいいじゃない。
C++のコードには見えないけど、まあ関係ないか。
402デフォルトの名無しさん:2008/12/06(土) 22:03:27
>>399
どうもです!できました
403デフォルトの名無しさん:2008/12/06(土) 22:04:47
自分でやってみる前に人に聞いて何が悪い
404デフォルトの名無しさん:2008/12/06(土) 22:07:19
知らないならレスしないでください。うざいだけです。
405デフォルトの名無しさん:2008/12/06(土) 22:08:17
なんか素人くせー質問多いな
今日だけ
406デフォルトの名無しさん:2008/12/06(土) 22:08:46
ここに居る人間ってプロだったのか?w
407デフォルトの名無しさん:2008/12/06(土) 22:10:48
俺はプロのグラマーだ
408デフォルトの名無しさん:2008/12/06(土) 22:10:57
もしかして実行環境とかなしで、座学で勉強してんの? って訊きたくなるような質問ってあるよな。
409デフォルトの名無しさん:2008/12/06(土) 22:11:21
プロって職業プログラマーか。
IT業界の底辺だな。
410デフォルトの名無しさん:2008/12/06(土) 22:12:36
答えが返ってくるまで待つ暇があったら、
自分でやってみるほうが遥かに早く結果が見れるぞ。
つまり、時間を損していないかということ。

ただ、自分のとこではうまくいくけど、他ではだめって場合もありうるから人に聞くのも大事だよ。

俺?
396のコードからコンパイルして実行できる状態までコードを補完するのがめんどいからやらない。
411デフォルトの名無しさん:2008/12/06(土) 22:12:53
IT業界の底辺だなってIT業界ってプログラマとSEとNEぐらいしかいねーだろw
412デフォルトの名無しさん:2008/12/06(土) 22:14:39
>>410
80286のボロボロPCだからコンパイるよりも答えを待った方が早いんだよ
413デフォルトの名無しさん:2008/12/06(土) 22:15:14
あと、いちいちそんなことを疑問に思ってそのたびにネットで質問してたらぜんぜん
先に進まないだろ、入門書でも買って、それを頭からやっていったほうが早いよ、とか思わせる質問とかあるな。
414デフォルトの名無しさん:2008/12/06(土) 22:18:00
完璧主義なんだよ。文句あっか
415デフォルトの名無しさん:2008/12/06(土) 22:20:40
>>412
それはさすがに新しいPCの入手をお勧めする。
286で動くWindowsでGDI+が使用可能なものはないはずだ。
コンパイルにいくら時間がかかっても実際に動かせないのではつまらないだろう。
416デフォルトの名無しさん:2008/12/06(土) 22:22:45
386ならWin95が動くからGDI+は一応使えるな
417デフォルトの名無しさん:2008/12/06(土) 22:25:00
>>414
じゃあプログラムなんかすんなよ
418デフォルトの名無しさん:2008/12/06(土) 22:39:11
完璧主義者なら、マシン語でかけよ
419デフォルトの名無しさん:2008/12/06(土) 22:39:43
>>408
修行を積めば脳内でコード書いて脳内でコンパイルして脳内で実行できるようになるよ
420デフォルトの名無しさん:2008/12/06(土) 22:47:38
IDがID_HOGEのエディットボックスに数字とか表示するのどうやんだっけ?
421デフォルトの名無しさん:2008/12/06(土) 22:48:55
>>420
GetDlgItem
422デフォルトの名無しさん:2008/12/06(土) 22:54:06
SetDlgItemじゃべ
423デフォルトの名無しさん:2008/12/06(土) 23:07:19
文字列なら、SetDlgItemText()

数値(整数)なら、SetDlgItemInt()
424デフォルトの名無しさん:2008/12/06(土) 23:33:37
SetDlgItemText
SetDlgItemInt
SetDlgItemInt64
SetDlgItemPointer
SetDlgItemFloat
SetDlgItemDouble

全部用意してくれればいいのにケチだなあ
425デフォルトの名無しさん:2008/12/07(日) 00:05:29
ある関数でダイアログを呼び出し、
その関数でダイアログを閉じるにはどうしたらいいですか?


DestroyWindowだとプロシージャの中でしかできないですし・・・
426デフォルトの名無しさん:2008/12/07(日) 00:09:55
>>425
DestroyWindow(hWnd)

次くだらない質問したらお前は今後ダイアログ使用禁止な
427デフォルトの名無しさん:2008/12/07(日) 00:14:58
>>426
それやってるんですが閉じないです・・・
428デフォルトの名無しさん:2008/12/07(日) 00:18:45
EndDialog
429デフォルトの名無しさん:2008/12/07(日) 00:20:45
>>424
SetDlgItemPrintf
430デフォルトの名無しさん:2008/12/07(日) 00:23:24
>>428
EndDialogでも同じく閉じないです。
動作も固まります
431デフォルトの名無しさん:2008/12/07(日) 00:30:37
とりあえずコード晒せよ

どうせまたどこかの糞サイトのコピペだと思うがな
432デフォルトの名無しさん:2008/12/07(日) 00:43:08
DialogBox( g_hInst, MAKEINTRESOURCE(MYDIALOG), hParent, DlgProc_progress);

処理

この処理の進行状況をダイアログに表示したい

処理が終わると
DestroyWindow(hParent);

って感じです。ダイアログは表示されますが・・・
433デフォルトの名無しさん:2008/12/07(日) 00:50:57
http://www.geocities.jp/ky_webid/win32c/
この際とはうんこ
434デフォルトの名無しさん:2008/12/07(日) 00:51:07
DialogBoxで作ったダイアログはEndDialogで終わるんだろうが
MSDN読んでから出直して来い
435デフォルトの名無しさん:2008/12/07(日) 00:51:08
そんなんで伝わると本気で思ってるのか?
436デフォルトの名無しさん:2008/12/07(日) 00:56:50
>>434
Endでもだめなんです
437デフォルトの名無しさん:2008/12/07(日) 00:58:50
次スレからテンプレ希望
↓↓↓↓↓↓↓↓↓↓

以下は、Googleで上位にヒットするにもかかわらず
間 違 い だ ら け の ダメサイトです。

初心者は安易にコピペしないよう気をつけましょう。

http://www.kumei.ne.jp/
http://wisdom.sakura.ne.jp/system/winapi/
http://www.geocities.jp/ky_webid/win32c/
438デフォルトの名無しさん:2008/12/07(日) 01:00:35
>>436
MSDNを読む気は一切無いみたいだな
正直Win32は諦めた方がいいと思うよ
439デフォルトの名無しさん:2008/12/07(日) 01:04:18
>>437
>>3にあるのばっかりじゃんw
440デフォルトの名無しさん:2008/12/07(日) 01:10:46
日本を代表するWin32プログラミングのサイトがコレだからな・・・
441デフォルトの名無しさん:2008/12/07(日) 01:11:24
>>437
どっかいいさいとないの?
442デフォルトの名無しさん:2008/12/07(日) 01:13:34
DialobBox 関数はダイアログボックスが閉じられるまで呼び出し元に返ってきません。
443デフォルトの名無しさん:2008/12/07(日) 01:14:40
444デフォルトの名無しさん:2008/12/07(日) 01:26:02
どうせモーダルとモードレスの違いも分からんのだろう
445デフォルトの名無しさん:2008/12/07(日) 01:28:44
ReadFile、WriteFileによる非同期読み込み書き込みが成功しない
ソースはhttp://www.geocities.jp/ky_webid/win32c/052.html
同期の場合は成功

自分の環境がおかしいのかプログラムがおかしいのかわからない
File File Copyというソフトは非同期I(?)が正常に動いているので環境ではなくプログラムに問題あり?
446デフォルトの名無しさん:2008/12/07(日) 01:39:38
>>445
新手の荒らしか何かか?w
少し上でクソサイトと書かれて間もないというのにw
447デフォルトの名無しさん:2008/12/07(日) 01:41:20
管理人自らSEO対策ですね、わかります
448デフォルトの名無しさん:2008/12/07(日) 03:10:48
根拠の無い誹謗中傷で個人サイトを叩く基地外は死ね
449デフォルトの名無しさん:2008/12/07(日) 03:13:43
ソースが間違ってんだから糞サイトといわれる根拠はあるだろ
嘘掲載しなければいいだけ
450デフォルトの名無しさん:2008/12/07(日) 03:16:24
間違ってんなら管理人に連絡してやれよw
451デフォルトの名無しさん:2008/12/07(日) 03:16:52
そんな義理が誰にある。
452デフォルトの名無しさん:2008/12/07(日) 03:44:44
一番下はダメなのはわかるけど、
久米井さんとウィズダムソフトは別に間違いだらけじゃないでしょ?
くめいさんはちょっと古いけど
453デフォルトの名無しさん:2008/12/07(日) 03:46:41
古い事は叩かれる理由になりうるような気がしないでもない。
テンプレからはずせばいいんだけどさ。
454デフォルトの名無しさん:2008/12/07(日) 03:49:07
じゃあWisdomSoftは?
455デフォルトの名無しさん:2008/12/07(日) 04:26:03
なんでこのスレが一般サイトのヘルプ役まで担わないといけないのか
メールアドレス書いてあるんだから書いた本人に聞けよ
456デフォルトの名無しさん:2008/12/07(日) 04:53:28
書いた本人が宣伝してるんだよ
457デフォルトの名無しさん:2008/12/07(日) 05:25:14
間違いだらけの初心者向けサイト作ってるやつって何が目的なんだろうね
アフィとか金が絡むならまだ分かるけど
458デフォルトの名無しさん:2008/12/07(日) 05:30:05
ここのドカタと違い猫は凄いよな。
本職は医者で、プログラムも作れる。すげーーー
おまえら、医者なんて絶対になれないだろ。
459デフォルトの名無しさん:2008/12/07(日) 05:49:22
医者になろうなんて人生で一秒たりとも思った事無いんだが
460デフォルトの名無しさん:2008/12/07(日) 06:28:10
グダグダ言うなら自分で「正しい」解説のサイトを作ればいいだろ
行動で示せないくせに匿名掲示板で文句だけは人一倍偉そうに言う奴って人間のクズだね
461デフォルトの名無しさん:2008/12/07(日) 06:30:17
そういうスレじゃないしw
趣旨間違えてるアホに言われたくないよ
462デフォルトの名無しさん:2008/12/07(日) 06:46:57
結論

日本の代表的な解説サイトは嘘が多いので注意すべし
サイトに載ってるソースコードの事は管理人にメールで聞け
463デフォルトの名無しさん:2008/12/07(日) 07:51:56
猫サイト、ずいぶん昔メールで間違いを指摘したけどシカトされたよ。
464デフォルトの名無しさん:2008/12/07(日) 09:07:48
ちゃんと猫語でメールしたのか?
465デフォルトの名無しさん:2008/12/07(日) 09:22:35
日本の猫は日本語だろ?
466デフォルトの名無しさん:2008/12/07(日) 09:42:26
>>460
だって、基地外どかただもん

本職プログラマじゃないのが、あれだけのと書けるんでだから
プログラム開発で生計立てている香具師のweb・blogはEffective ???本や
やAdvaced Winowsレベル以上のことを色々書かないとこいつほんとにプロかと馬鹿にされるよな。
でも、どかたじゃ無理だろな。所詮プロじゃなくどかた。
467デフォルトの名無しさん:2008/12/07(日) 09:44:20
そのITドカタって言われてる職業ですが、年収は1000万超えるんですが・・・。
468デフォルトの名無しさん:2008/12/07(日) 09:59:16
海外在住のITドカタですが、年収は手取りで900万を超えますよ
469デフォルトの名無しさん:2008/12/07(日) 10:17:06
>>467-468
年収じゃ医者はそれ以上だろ。
2,3千万年収ないと、医者なら能力ないからそんな低年収なんだと馬鹿にされるぞ。
せめて、2千万ぐらい稼げよ
で、Effective ???本やAdvaced Winowsのレベルを軽く超える内容
たくさん書けるんだろ?
470デフォルトの名無しさん:2008/12/07(日) 10:33:59
はいはいわろすわろす
471デフォルトの名無しさん:2008/12/07(日) 10:36:22
>>469
そういうおまえさんは、いくらなんだよ? 1本稼ぐ苦労は、おまえさんが言うほど甘くないぜ
472デフォルトの名無しさん:2008/12/07(日) 10:37:23
3000万円(自称)
473デフォルトの名無しさん:2008/12/07(日) 10:49:34
>>469
最近の医者はそこまで儲からんよ?
個人の医院開いてひーこら働いて2,3千万いくかいかないか
大学病院とかの雇われ医師で1千万ぐらいだよ。

で、「書ける」「書けない」じゃなくって「書いても質問メールがうぜぇ」でFA
474デフォルトの名無しさん:2008/12/07(日) 10:55:04
>>471
俺、年収1千万超えるようにになって数年
俺、IT業界の人間じゃない。プログラムは趣味

日本のIT業界って、超内向き産業だからほんと土建業界と同じでワロタよ
だから、PG=どかたと言われてるんだろ
やっぱ、自社製品開発販売、外貨稼をがんがん稼ぐ業界にならないと
底辺産業言われるんじゃね。
475デフォルトの名無しさん:2008/12/07(日) 11:14:55
自社製品開発販売って・・・普通にしてるだろ。
受託して開発するのも自社製品の開発の一部だし
「他業種」にドカタって言われてもなぁ・・・
日本のIT業界って超内向き産業じゃないし外向きだしPMがクソッタレだから失敗するプロジェクトも多いけど
段々と成功するプロジェクトの数が多くなってきてるしなぁ

まぁ、アレだ自分より下を見つけて自己保身したいだけの馬鹿乙
476デフォルトの名無しさん:2008/12/07(日) 11:17:27
>>473
大学病院なんかで低給料でがむしゃらに働くのは技術習得や経験を積むためだろ、
そこで独り立ちやプロ医師レベルになったら自分で開業か、高給料で雇ってくれるところに移る。

web/blogに書いたからと言って質問を受ける義務(連絡先記載の必要性なし)はない。

ここで、質問してるのって、俺みたいな趣味グラマ連中で動けばOKレベルだろ。
それに合わせてテンプレも書かれてるんだろ。なら、猫でも良いじゃないか。
どかたはするかもしれんが、プロならこんなところで質問するレベルじゃないだろ。
477デフォルトの名無しさん:2008/12/07(日) 11:21:32
>>476
いや、独り立ちするのにいくら資金がいくら必要だと思ってんの?
プロ医師って何だ?「プロ」の定義さえもわかってねーの?

で、だからどうしてお前みたいな人間のために得た知識を公開しなきゃいけないの?
間違ってると思うならおまえ自身が造ればいいだろう
478デフォルトの名無しさん:2008/12/07(日) 11:27:13
>>445 から後は、スレ違いのヴァカばかり
479デフォルトの名無しさん:2008/12/07(日) 11:42:57
>>475
業界構造が土建に似てるから、そこの末端にちなんでどかたと
いってるんじゃないのか。俺がPGをどかたと呼ぶんだと知ったのこの板でだ。
超内向きってのは、内需依存業界ってことだ。市場は海外もあるんだから
そこにもがんがん自社製品を売り込めば良いんじゃね。
俺、アメリカ企業みたいに海外で自社ソフト製品を売り込もうとしないのか不思議だよ。
それが当たればれば、給料も上がって年収1千万も普通に行くようになるんじゃね。

>>477 公開するか自分で決められないのか?

>>478 もうこのスレが雑談スレだろ
480デフォルトの名無しさん:2008/12/07(日) 11:48:07
猫は具体的に何が間違ってるの?
481デフォルトの名無しさん:2008/12/07(日) 11:51:53
>もうこのスレが雑談スレだろ

いいから死ねよ
482デフォルトの名無しさん:2008/12/07(日) 11:53:17
>>479
1、日本の経済は内需で7割近く
2、日本のソフトウェア海外でも数多く使われてる
3、お前が知らないだけ
483デフォルトの名無しさん:2008/12/07(日) 11:55:14
スレ迷走作戦大成功で成りすまし.NET厨大喜び
484デフォルトの名無しさん:2008/12/07(日) 12:33:37
>>480
間違ってるっつうか古い
485デフォルトの名無しさん:2008/12/07(日) 12:37:01
何年もあるサイトなんだから仕方が無いだろう
486デフォルトの名無しさん:2008/12/07(日) 12:59:31
仕方ないのは仕方ないけど、古いならあんまり初心者に勧めないほうがいいよね、って話じゃないの。
487デフォルトの名無しさん:2008/12/07(日) 14:35:50
だがしかし、日本語のウェブサイトでのサンプル集としては、なかなかの量を誇るのが猫の魅力的なとこだと思う。
コードがアレなのを分かった上で使えば薬にもなるよ。
488デフォルトの名無しさん:2008/12/07(日) 14:44:01
おまえら、そんなことより
>>445の打開策を考えてくれ
489デフォルトの名無しさん:2008/12/07(日) 15:36:35
>>488
そのサイトの管理者に訊けばいいのでは。
トップページに
>>質問や要望・ご指摘など、ご気軽にどうぞ(匿名で結構ですよ)。
って書いてあるし
490デフォルトの名無しさん:2008/12/07(日) 15:44:34
もうだめだこのスレ
491デフォルトの名無しさん:2008/12/07(日) 18:33:29
>>487
職業プログラマなら周りに教えてもらえる先輩いるだろうしな。フリーの開発ツール
使ってて教えてもらえる相手がいないサンデープログラマなら多少問題あっても十分役にたつと思う。
492デフォルトの名無しさん:2008/12/07(日) 18:33:37
それは知ってた
493デフォルトの名無しさん:2008/12/07(日) 18:38:49
もうだめだ?
いやいや、ずっと前からだめなまんまだろ
494デフォルトの名無しさん:2008/12/07(日) 18:47:58
>>491
先日、WM_SIZE に対応するコードはどうだっけかと、数年ぶりに見に行った。
いやー、助かった。何年も使っているプログラムのダイアログのサイズを自由
にしたくなってのこと。
495デフォルトの名無しさん:2008/12/07(日) 19:10:16
あれで一から勉強しようと思うと失敗する。
496デフォルトの名無しさん:2008/12/07(日) 19:23:54
いまどき、winapiでwinプログラムを一から勉強することもなかろうに
497デフォルトの名無しさん:2008/12/07(日) 19:28:01
API知っとくとMFCも楽だし.NETもとっつきやすいだろう
498デフォルトの名無しさん:2008/12/07(日) 20:21:36
>>496
ついでにプログラムを勉強する必要もないな、おまえには
近頃の・・・とは言わんが無目的な者につける薬はない
499デフォルトの名無しさん:2008/12/07(日) 20:34:56
>>498 何でそんな反応になるんだ、おっさん?
C#、VBでウィンプログラム初めて必要になった時にapiをやっても良いんじゃないのか
500デフォルトの名無しさん:2008/12/07(日) 20:39:58
猫C、スレ見て久しぶりに見に行ったがC#はじめたんだな
501デフォルトの名無しさん:2008/12/07(日) 21:38:59
スレの流れが速いなと思ったら例の.NET厨がファビョただけか
502デフォルトの名無しさん:2008/12/07(日) 21:48:23
XPとVistaで動作するアプリケーションを作ってて思ったんですが
Vistaって結構いいかげんでも落ちずに動きませんか?
XPだとアホなバグで落ちて分かりやすいんですがVistaだとなんか持ちこたえちゃうみたいな。
メモリまわりで。
503デフォルトの名無しさん:2008/12/07(日) 21:49:33
.net厨って誰かさんの脳内にしか存在しないみたいですが
504デフォルトの名無しさん:2008/12/07(日) 21:50:15
GlobalFlag弄ってヒープ周りのチェック入れとけ
505デフォルトの名無しさん:2008/12/07(日) 21:51:30
506デフォルトの名無しさん:2008/12/07(日) 21:55:01
目覚ましと時計(笑)ならAPIの知識は全く必要無さそうねw
てかガジェットで作るレベルのソフトだろそれwww
507デフォルトの名無しさん:2008/12/07(日) 21:57:19
APIの知識(笑)
508デフォルトの名無しさん:2008/12/07(日) 21:59:35
.net厨(笑)
509デフォルトの名無しさん:2008/12/07(日) 22:00:18
あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw
あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw
あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw
510デフォルトの名無しさん:2008/12/07(日) 22:04:18
指定時間に休止状態(サスペンド)から復帰する目覚ましじゃないの?
俺は「タスク」を使ってるけど
511デフォルトの名無しさん:2008/12/07(日) 22:08:26
重要なのは道具じゃなくて何を成したか、だ
他スレにまで来て宣伝してる奴を見たらこう言えばいい

「で?お前は何ができんの?」

512デフォルトの名無しさん:2008/12/07(日) 22:10:25
>>511
「指定した時間にMP3を再生する目覚ましと時計」が作れると本人も言ってるじゃないかw
513デフォルトの名無しさん:2008/12/07(日) 22:17:33
GDI+使ってるんだがGraphicsにDrawIconメソッドがないんだ
MSDNにのってるんだからあるはずだよな・・・
ついでにIconクラスもなかった
.NET Fw3.5のはずなんだが、原因わかるやついる?

514デフォルトの名無しさん:2008/12/07(日) 22:30:22
ダイアログプロシージャの
case WM_INITDIALOG
のダイアログが作成されたときという条件に
処理を書くと、その処理後にダイアログが作成されるんですが、これは仕様ですか?
515デフォルトの名無しさん:2008/12/07(日) 22:32:45
>>513
開発環境が.NETではないのでは?
通常のAPI叩いたC/C++の開発ならGdiplus.libにはいってるクラスしか使えないだろjk

 
516デフォルトの名無しさん:2008/12/07(日) 22:32:50
>>514

http://msdn.microsoft.com/en-us/library/ms645428(VS.85).aspx

>message is sent to the dialog box procedure immediately before a dialog box is displayed
517デフォルトの名無しさん:2008/12/07(日) 22:36:19
>>514
WM_INITDIALOG==WM_CREATE
ちょっぴり違うものだけどダイアログボックス用のCreateだとおもっとけ
518デフォルトの名無しさん:2008/12/07(日) 22:36:40
>>516
ということは仕様なんですね。ダイアログ表示後すぐ開始した処理はどのように書いたらいいのでしょうか?
519デフォルトの名無しさん:2008/12/07(日) 22:39:35
>>513
BitmapクラスのコンストラクタにHICON食わせられるが。
少なくとも素のC++からなら。
520デフォルトの名無しさん:2008/12/07(日) 22:39:39
>>518
日本語でおk

っていうか、ソレを考えるのがプログラマだろ
521デフォルトの名無しさん:2008/12/07(日) 22:42:10
>>518

言ってる意味がわからないが、ダイアログがアクティブになったら
処理することか?

それならメッセージでなんかあったろうに
522デフォルトの名無しさん:2008/12/07(日) 22:46:49
>>520
ダイアログプロシージャから関数を呼び出したいのですが、それをダイアログが表示された後に呼び出したいんです。

ダイアログのハンドルをその関数に渡してダイアログに文字を表示とかそんなことをしたいのです
523デフォルトの名無しさん:2008/12/07(日) 23:05:20
普通にWM_PAINTで文字を描けばいいだろ
524デフォルトの名無しさん:2008/12/07(日) 23:06:38
関数を呼び出すのはどうすればいいですか?その関数内での計算結果を描画したいんです
525デフォルトの名無しさん:2008/12/07(日) 23:14:02
>>517
WM_CREATE はダイアログリソース上の子がまだ出来ていない
WM_INITDIALOG は子の生成が完了した後に来る
526デフォルトの名無しさん:2008/12/07(日) 23:17:49
>>525
case WM_CREATEでやると
そこにある処理は実行されません・・・
527デフォルトの名無しさん:2008/12/07(日) 23:24:25
プロシジャーをサブクラス化してるんじゃねーの?
サブクラス化を施したタイミングだと既にWM_CREATEが通った後で、
差し替えたプロシジャーには WM_CREATE は来ない
528デフォルトの名無しさん:2008/12/07(日) 23:26:32
サブクラス化???
529デフォルトの名無しさん:2008/12/07(日) 23:28:37
何もしなくてもダイアログプロシージャにWM_CREATEは来ないだろ
530デフォルトの名無しさん:2008/12/07(日) 23:33:58
ダイアログがどうたら言ってる奴はもう少し基礎からやれよ
スコープとか何も理解してない気がする
531デフォルトの名無しさん:2008/12/07(日) 23:40:41
めんどくさい。
アップローダにソース一式挙げろ。

訳の分からん説明を聞いていても埒が明かない。
532デフォルトの名無しさん:2008/12/07(日) 23:46:09
すいません。ちょっとそれは・・・

とにかくダイアログ(モーダル)が出来たら無条件で関数を開始したいのです
533デフォルトの名無しさん:2008/12/07(日) 23:50:44
>>532
作成後ならWM_INITDIALOGでいいし
表示時ならWM_PAINTでいい

まだ何かあるか?
534デフォルトの名無しさん:2008/12/07(日) 23:58:52
>>525>>527
こういう勘違い野郎が一番迷惑だ
535デフォルトの名無しさん:2008/12/08(月) 00:01:39
>>532
妄想レス
WM_INITDIALOGで関数やれフラグ立てる
WM_PAINTでフラグあったら関数やる、そしてフラグおろす
で駄目か
536デフォルトの名無しさん:2008/12/08(月) 00:02:58
動かしたい関数の処理時間が長いとか?
537デフォルトの名無しさん:2008/12/08(月) 00:03:10
>>535
「WM_PAINTを描画以外の用途に使わない」

Win32の基本を理解してないお前に回答する資格は無い
538デフォルトの名無しさん:2008/12/08(月) 00:08:50
>>537
ダイアログに文字を表示だから良いんじゃね
539デフォルトの名無しさん:2008/12/08(月) 00:11:07
描画するための文字を生成するのは描画用途と違うのかw
540デフォルトの名無しさん:2008/12/08(月) 00:17:06
つーか普通にWM_PAINTで描画すればいいだけじゃん
541デフォルトの名無しさん:2008/12/08(月) 00:18:13
ソース晒せといわれても出さないし、おかしな日本語で後出しするだけ

こんな馬鹿ほっとけよ
542デフォルトの名無しさん:2008/12/08(月) 00:28:39
tkなんでVS2008のSDK開発で.NET Framework クラス ライブラリ使おうとすると
存在しないGDI+クラスがあるんだよ

MSDNでのってるくせにGdiplus.libにないのはどういうわけだくそが
543デフォルトの名無しさん:2008/12/08(月) 00:29:51
処理は結構ながいです。その処理の進行状態を描画するためのダイアログなんですよ
544デフォルトの名無しさん:2008/12/08(月) 00:34:11
>>543
だから、WM_INITDIALOGで駄目な理由を明確に書けよ
545デフォルトの名無しさん:2008/12/08(月) 00:35:05
>>524
>その関数内での計算結果を描画したいんです
って
計算はダイアログからのユーザー入力情報いらないのか?
いらないなら、計算はWM_INITDIALOGでし、
表示のみをWM_PAINTでやれば良いんじゃないか
546デフォルトの名無しさん:2008/12/08(月) 00:39:00
>>545
WM_INITDIALOGで計算させると計算が終わるまでダイアログがでなくね
547デフォルトの名無しさん:2008/12/08(月) 00:40:04
>>543
計算は別スレッドなんか?
別スレッドの進行状況をダイアログに表示させたいと。
548デフォルトの名無しさん:2008/12/08(月) 00:42:53
>>545
そうすると
>>546みたいになります。
>>547
計算は別の関数です。スレッドは別じゃないとおもいます。よくわからないんですが
549デフォルトの名無しさん:2008/12/08(月) 00:44:08
>>546-547
余計な事いうとダラダラ続くから
計算結果を表示する所だけに絞ろうぜ

聞かれてない事まで答えなくていいよ
脱線するから
550デフォルトの名無しさん:2008/12/08(月) 00:46:12
>>548
また新情報かよ。
質問する時はできる限りの情報を纏めた上で聞けよ。
551デフォルトの名無しさん:2008/12/08(月) 00:46:25
計算の関数で、for文とか回しててインクリメントのiを表示するみたいな漢字か
552デフォルトの名無しさん:2008/12/08(月) 00:46:25
WM_INITDIALOGで計算用のスレッドを立てる
別スレッドで計算しつつWM_PAINTで描画する

これでいいだろ
553デフォルトの名無しさん:2008/12/08(月) 00:47:08
>>550
計算する関数を呼びだすっていうことは書いていたとおもうんですが・・・

>>551
そんなかんじです
554デフォルトの名無しさん:2008/12/08(月) 00:47:37
>>548
> よくわからないんですが
ってテメー本人が分かってなくて誰が分かるんだよ
555デフォルトの名無しさん:2008/12/08(月) 00:48:09
>>552
ダイアログの表示も満足にできない奴にスレッドなんか使えると思うのかw
556デフォルトの名無しさん:2008/12/08(月) 00:48:16
こいつにマルチスレッドできるのかよw
557デフォルトの名無しさん:2008/12/08(月) 00:49:02
>よくわからない

だからソース見せろってんだよ。
添削してやるからw
558デフォルトの名無しさん:2008/12/08(月) 00:50:14
       り    上
    盛             が
 あ                   っ
さ         ぁ   っ         て
       ぁ         !
                       き
      ぁ      !  !
                      ま
      ぁ
                    し
         ぁ       た
             ぁ
559デフォルトの名無しさん:2008/12/08(月) 00:52:08
Graphics MyGraphics(hdc); //HDC hdc
Bitmap *bitmap = new Bitmap(icon) //HICON icon
MyGraphics.DrawImage((Image *)bitmap,x,y);

//hdc icon x y それぞれ値がはいってるものとする

これだとアルファ値を32bitアイコンからうまく取得できなく、影の部分が
黒くなっちゃうんだよ。影の部分を半透明させるためにどうすりゃいいんだ

おしえてえらい人!
560デフォルトの名無しさん:2008/12/08(月) 00:52:29
マルチスレッドというのを調べました。

マルチスレッドではなかったです
561デフォルトの名無しさん:2008/12/08(月) 00:54:12
>>559
APIのDrawIcon(Ex)を使えばいいだろ
562デフォルトの名無しさん:2008/12/08(月) 00:54:43
563デフォルトの名無しさん:2008/12/08(月) 00:56:41
>>560
存じてますわ。
564デフォルトの名無しさん:2008/12/08(月) 00:57:21
>>560
さっさとソース見せろつってるだろ
565デフォルトの名無しさん:2008/12/08(月) 01:00:26
ソース見ないとわからないならレスしないで下さい。
566デフォルトの名無しさん:2008/12/08(月) 01:02:21
ソース見ても分からないからレスします
567デフォルトの名無しさん:2008/12/08(月) 01:04:18
ソース見ても見なくてもわからないならレスしないで下さい。
568デフォルトの名無しさん:2008/12/08(月) 01:07:08
>>WM_INITDIALOGで計算用のスレッドを立てる
別スレッドで計算しつつWM_PAINTで描画する


もう回答でてるだろあほ

569デフォルトの名無しさん:2008/12/08(月) 01:07:51
今の状況でソースみせろってのもあほだろ
570デフォルトの名無しさん:2008/12/08(月) 01:10:14
質問者は日本語が不自由のため「ソース見せろ」や>>552の日本語が理解できません
571デフォルトの名無しさん:2008/12/08(月) 01:11:03
もう無視でいい。

根性があれば谷に突き落とされても這い上がってくる。
572デフォルトの名無しさん:2008/12/08(月) 01:14:04
もうお前らの馬鹿さ加減にはほとほと嫌気がさして候
573デフォルトの名無しさん:2008/12/08(月) 01:15:51
糞ソース見たくないからレスします

初めてのお使いじゃなかった、初めてのマルチスレッドをがんばる>>560
多くの苦難挫折を乗り越えやり遂げた>>560にここのみんなが涙する
574デフォルトの名無しさん:2008/12/08(月) 01:15:56
もういいです。

ここまで役に立たない人ばかりとは思いませんでした
575デフォルトの名無しさん:2008/12/08(月) 01:16:56
釣り宣言は>>600まで。
それ以降は無効。
576デフォルトの名無しさん:2008/12/08(月) 01:21:44
そんなことより>>559のやつを一緒に考えてくれよ

ようは半透明なウィンドウにアイコン表示させると、影の部分が全体一定の色で
残っちゃうんだよ、DrawIconにしてもGDI+にしても。

アルファ値も一緒に書き込んでくれる関数があったらいいんだけどな
577デフォルトの名無しさん:2008/12/08(月) 01:22:05
>>574
うん。頑張れ。
578デフォルトの名無しさん:2008/12/08(月) 01:33:28
>>576
その程度なら自分で作ればいいだろ
何でもAPIが用意されてると思うなよ
579デフォルトの名無しさん:2008/12/08(月) 01:40:51
>>578

そんなんつくれたら苦労しねよあほ
580デフォルトの名無しさん:2008/12/08(月) 01:43:56
もうだめだこのスレ
581デフォルトの名無しさん:2008/12/08(月) 01:49:14
俺がいるからまだ大丈夫
582デフォルトの名無しさん:2008/12/08(月) 01:49:44
誰お前
583デフォルトの名無しさん:2008/12/08(月) 01:50:54
俺だよ、俺
584デフォルトの名無しさん:2008/12/08(月) 02:07:01
>>579

勝手に苦労しとけあほ
585デフォルトの名無しさん:2008/12/08(月) 02:10:21
WM_INITDIALOGでユーザー定義メッセージを自分にポストして
そのメッセージに応答して計算しInvalidateRectなりする、でどうでしょう
PostMessage(hWnd,WM_MYCALC,0,0);
586デフォルトの名無しさん:2008/12/08(月) 02:12:41
>>585
終わった話題を蒸し返すなカス
587デフォルトの名無しさん:2008/12/08(月) 03:14:34

     カタカタ
  || ̄ Λ_Λ
  ||_(Д`; ) 「なに?このスレ・・・」
  \⊂´   )
    (  ┳'
588デフォルトの名無しさん:2008/12/08(月) 03:35:04
Win32APIの質問に優しく答えてくれるスレッドです

(ただし、スレ違い、情報後出し、おかしな日本語などは激しく罵倒されるので注意しましょう)
589デフォルトの名無しさん:2008/12/08(月) 09:56:12
Windowsプログラマーって日本一性格が悪いと思う
どの板、どのスレを見てもここまで酷い連中が集うスレは
見たことがない。
なんなんだろうね。プログラム作ったりすると何か脳に
障害でも起こるんだろうか。
590デフォルトの名無しさん:2008/12/08(月) 10:02:23
御客様が相手ならエスパー能力を要求されても可能な限り善処するが
同じ開発者のはずなのにこの質問は無いだろうと
591デフォルトの名無しさん:2008/12/08(月) 10:07:04
>>589
過去に叩かれて悔しかったのですね
592デフォルトの名無しさん:2008/12/08(月) 11:02:27
>>589
自己反省乙
593デフォルトの名無しさん:2008/12/08(月) 11:17:34
Win32APIのFALSEって、絶対に0と保証されているのですか?

よくTRUE or FALSEを返す関数を呼ぶ際に
if (Func()) {
  :
}
とか書いてあるのを見るけど、
これってFALSEが0以外に変更されたら破綻しませんか?
594デフォルトの名無しさん:2008/12/08(月) 11:24:52
#define TRUE 1
#define FALSE 0

だろjk
595デフォルトの名無しさん:2008/12/08(月) 11:27:41
>>593
FALSE が 0 以外に変更されることはありえない
∵ Win アプリはバイナリ配布で、FALSE を返す API も使う
596デフォルトの名無しさん:2008/12/08(月) 11:33:46
if文は0か非0かで判定してるんだから、
Func()が0を返すかどうかってことでしょ?

Func()の定義の中でFALSEをいじってたりすると違うかもしれないが・・・
597デフォルトの名無しさん:2008/12/08(月) 11:37:27
>>594-596
MSももはや変更できない定数ということですね。
それならBOOLの説明にでも「FALSEは0です」と明示しておいてもらいたいです。
ありがとうございます。
598デフォルトの名無しさん:2008/12/08(月) 11:39:02
明示しなくてもそんなの常識でしょ
599デフォルトの名無しさん:2008/12/08(月) 11:49:22
BOOLなのにFALSEとTRUE以外が戻る事もあるので
常識が通用するかどうか疑う事も重要
600デフォルトの名無しさん:2008/12/08(月) 11:50:35
>>597
てか、"TRUE/FALSEを返す"なんてMSDNに書かれてるか?
zero/nonzeroって表記だと思うけど。
601デフォルトの名無しさん:2008/12/08(月) 11:54:37
BOOLの説明にはFALSEかTRUEであるべきだと書いてあるがな
602デフォルトの名無しさん:2008/12/08(月) 11:57:20
なのに-1を返すGetMessageがっていつもの流れになるわけだな。
603デフォルトの名無しさん:2008/12/08(月) 12:03:58
普通の呼出方法ならGetMessageが-1を返すケースは無視できる
604デフォルトの名無しさん:2008/12/08(月) 12:06:28
>>600
自分でBOOLを返す関数を作るときは
TRUE/FALSEではなくzero/nonzeroを返すようにするべきということ?
605デフォルトの名無しさん:2008/12/08(月) 12:16:08
>>604
関数内部ではTRUE/FALSEを返すように作る。
外部仕様ではzero/nonzeroを返すと説明する。
606デフォルトの名無しさん:2008/12/08(月) 13:02:40
自作関数ならBOOLでなくてboolを使えばいいだろ
607デフォルトの名無しさん:2008/12/08(月) 15:02:50
いやいやそうじゃなくてさおまえらだまっとけと
608デフォルトの名無しさん:2008/12/08(月) 15:09:10
Cで書いてるとライブラリごとにBOOLがあって
どれがどのBOOLがあるのかわからなくなってくる
609デフォルトの名無しさん:2008/12/08(月) 15:23:06
”マルチモニタ”での画面の解像度を取得したいのですが、
何かAPIありますか?


GetDesktopWindow
GetClientRect
だと、メインディスプレイの解像度(1280x1024)しかとれませんでした。
610デフォルトの名無しさん:2008/12/08(月) 15:28:44
ある
611デフォルトの名無しさん:2008/12/08(月) 15:39:44
ttp://msdn.microsoft.com/ja-jp/library/cc428892.aspx

なんでMSDNぐらい引かないの? 馬鹿なの?
612デフォルトの名無しさん:2008/12/08(月) 15:41:56
>>611
知らないならレスしないで下さい。ウザイだけです。
613名無し募集中。。。:2008/12/08(月) 16:01:23
マルチモニタごとの領域を得るにはEnumDisplayMonitorsを使い
モニタの個数回だけ呼ばれるcallbackに引数として渡される。
nVidiaとATIで呼ばれる順番が違った経験があるのでrect.leftで判断した。
2つ目のモニタのrectは、例えばleft=1280, right=2559になるから解像度はwidthとheightで判断
614デフォルトの名無しさん:2008/12/08(月) 16:15:35
>>610
APIの名前教えてもらえますか?
>>611
そんな回答しておもしろいとかおもってるの?
馬鹿なの?
氏ねよ

>>613
いけました。
ありがとうございます。
615デフォルトの名無しさん:2008/12/08(月) 16:37:48
ヘルプの場所を教えてもらったのに見ようともしない馬鹿がいるような気がする
616デフォルトの名無しさん:2008/12/08(月) 16:42:24
気がするだけ
617デフォルトの名無しさん:2008/12/08(月) 16:44:27
もう駄目猫のスレ
618デフォルトの名無しさん:2008/12/08(月) 16:55:11
ばかばっか
619デフォルトの名無しさん:2008/12/08(月) 17:10:11
”マルチモニタ”での画面の解像度を取得したいのですが、
何かAPIありますか?
知らないならレスしないで下さい。ウザイだけです。
GetDesktopWindow
GetClientRect
だと、メインディスプレイの解像度(1280x1024)しかとれませんでした。
「マルチモニタごとの領域を得るにはEnumDisplayMonitorsを使い
モニタの個数回だけ呼ばれるcallbackに引数として渡される。
nVidiaとATIで呼ばれる順番が違った経験があるのでrect.leftで判断した。
2つ目のモニタのrectは、例えばleft=1280, right=2559になるから解像度はwidthとheightで判断する」みたいな誰かが既に定式化して名前が付いて
いる芸をそれを知らずにあえて行うような愚だけはしたくないんです。
620デフォルトの名無しさん:2008/12/08(月) 17:25:44
UpdateLayeredWindowで部分更新ってできる?
前に登録してあるビットマップデータの上に違うビットマップを転送したいのだが
うまくいかないんだ・・・・


1.ビットマップを作る
2.メモリデバイスと関連づけ
3.BitBlt(hdc, 0, 0,w,h, hmemdc, 0, 0, SRCCOPY|CAPTUREBLT) 転送
4.UpdateLayeredWindow(hWnd,NULL,NULL,NULL,hmemdc,NULL,NULL,NULL, ULW_ALPHA) 更新
621名無し募集中。。。:2008/12/08(月) 17:31:44
>>619
何に怒っているんだか良くわからないんだが、なんか悪い事をしたんだろうか
622デフォルトの名無しさん:2008/12/08(月) 17:36:57
>621
騙りか真性のどっちかだからほっとけ
623デフォルトの名無しさん:2008/12/08(月) 17:41:07
神聖の....ですね
624デフォルトの名無しさん:2008/12/08(月) 17:47:07
>>620
UpdateLayeredWindowなんて使ったこと無いが、MSDN見る限り
・hmemdcではダメなんじゃないの?
・ULW_ALPHA指定するならpblendがNULLじゃダメなんじゃないの?
ってあたりが気になるな。

それ以前に、本当にUpdateLayeredWindowを使うべきなのかってのも気になったりもするけどな。
普通にBitBltで重ねて書いたら書けちゃった!ってオチだったりしないか?
625デフォルトの名無しさん:2008/12/08(月) 18:04:16
>>624

さんくす
いやー、pngとかのフォーマット形式を表示させてたからUpdateLayeredWindow
で半透明にさせる必要があったんだよね。。。。
BitBltで普通に転送しても描画関係はシステムのほうに登録してあるから
Updateを使うほかなかったんだ・・・
626デフォルトの名無しさん:2008/12/08(月) 18:07:26
>>621-623
知らないならレスするなよクズ
627デフォルトの名無しさん:2008/12/08(月) 18:07:52
>>590
ここに質問に来ているのは、学生、趣味グラマが多い
フリーのプログラマならともかく、仕事で開発やってるなら、
周りの奴に普通聞くだろ。
628デフォルトの名無しさん:2008/12/08(月) 18:10:35
>>590はここでいつも>>612みたいなレスをしてる奴だよw
629デフォルトの名無しさん:2008/12/08(月) 18:13:31
周りの奴とコミュニケーション取れない奴が質問に来るんだろ
そういったコミュニケーション能力の無い奴は当然ながら日本語が不自由
630デフォルトの名無しさん:2008/12/08(月) 18:14:41
>>628
知らないならレスしないで下さい。ウザイだけです。
631デフォルトの名無しさん:2008/12/08(月) 18:17:33
>>628
自分が基準だとしてしか物事を捉えられないと
>>612見たいなレスをするんだな。
632デフォルトの名無しさん:2008/12/08(月) 18:19:48
会話のキャッチボールができないだけだからほっとけよ
633デフォルトの名無しさん:2008/12/08(月) 18:19:50
>>629
周りの奴ととコミュニケーションがとれないからここにいるんですね。わかります。
634デフォルトの名無しさん:2008/12/08(月) 18:25:38
>>633
周りの奴とと

顔真っ赤ですよw
635デフォルトの名無しさん:2008/12/08(月) 18:26:44
まとめ、普通の奴はここで質問しない
このことが分ってない奴がいっぱいてことだな
今日もぷちお祭りあるよね
636デフォルトの名無しさん:2008/12/08(月) 18:26:44
そこしか煽るとこがなかったですもんねw
637デフォルトの名無しさん:2008/12/08(月) 18:27:37
知らないならレスしないで下さい。ウザイだけです。
638デフォルトの名無しさん:2008/12/08(月) 18:27:57
まとめ、普通の奴はここでレスしない
このことが分ってない奴がいっぱいてことだな
今日もぷちお祭りあるよね
639デフォルトの名無しさん:2008/12/08(月) 18:29:28
WriteProcessMemoryとWriteMemoryの違いってなぁに
640デフォルトの名無しさん:2008/12/08(月) 18:30:50
知らないならレスしないで下さいね
641デフォルトの名無しさん:2008/12/08(月) 18:31:19
キチガイの気に障ったみたいだな
642デフォルトの名無しさん:2008/12/08(月) 18:33:25
プログラマ==小泉毅
が常識、覚えとくように
643デフォルトの名無しさん:2008/12/08(月) 18:34:20
>>639
WriteMemory?そんなWinAPIありませんが?
知らないならレスしないで下さい。ウザイだけです。
644デフォルトの名無しさん:2008/12/08(月) 18:38:51
リア小、リア中がいるのがよく分かる
こいつらが帰宅した時間になるとこれだからなw
645デフォルトの名無しさん:2008/12/08(月) 18:40:53
むしろ、疑問なんだがリア小、リア中だとしたら何なんだ?
すばらしい事だろう、育てるべき人財であろう?
646デフォルトの名無しさん:2008/12/08(月) 18:42:08
>>645
リア小 or リア中 乙
647デフォルトの名無しさん:2008/12/08(月) 18:42:15
まとめ、普通の奴はここでレスしない
このことが分ってない奴がいっぱいてことだな
今日もぷちお祭りあるよね
648デフォルトの名無しさん:2008/12/08(月) 18:43:19
うんち!
649デフォルトの名無しさん:2008/12/08(月) 18:44:41
ツールもドキュメントもこんなに充実した環境でまともな質問者がそうそう来るわけないじゃん
少し肩の力抜けよ
650デフォルトの名無しさん:2008/12/08(月) 18:49:12
>>612 2008/12/08 15:41:56
>>616 2008/12/08 16:42:24
>>618 2008/12/08 16:55:11
>>626 2008/12/08 18:07:26
>>630 2008/12/08 18:14:41
>>633 2008/12/08 18:19:50
>>635 2008/12/08 18:26:44
>>637 2008/12/08 18:27:37
>>638 2008/12/08 18:27:57
>>640 2008/12/08 18:30:50
>>643 2008/12/08 18:34:20
>>645 2008/12/08 18:40:53
>>647 2008/12/08 18:42:15
>>648 2008/12/08 18:43:19
651デフォルトの名無しさん:2008/12/08(月) 18:49:12
本当にリア小、リア中だとしたらすげえ
けど素晴らしい事かは疑問
あまり来てほしくはない
だって小中学生が煽ってるって想像してみなよ
652デフォルトの名無しさん:2008/12/08(月) 18:49:56
>>649
まともな回答者も来るわけないじゃん がぬけてるぞ!
653デフォルトの名無しさん:2008/12/08(月) 18:50:45
>>650
つまらないレスしないで下さい。ウザイだけです。
654デフォルトの名無しさん:2008/12/08(月) 18:52:19
>>612 2008/12/08 15:41:56
>>616 2008/12/08 16:42:24
>>618 2008/12/08 16:55:11
>>626 2008/12/08 18:07:26
>>630 2008/12/08 18:14:41
>>633 2008/12/08 18:19:50
>>635 2008/12/08 18:26:44
>>637 2008/12/08 18:27:37
>>638 2008/12/08 18:27:57
>>640 2008/12/08 18:30:50
>>643 2008/12/08 18:34:20
>>645 2008/12/08 18:40:53
>>647 2008/12/08 18:42:15
>>648 2008/12/08 18:43:19
>>652 2008/12/08 18:49:56
>>653 2008/12/08 18:50:45
655デフォルトの名無しさん:2008/12/08(月) 18:52:39
うんちうんち!!
656デフォルトの名無しさん:2008/12/08(月) 18:54:57
ふくふく
657デフォルトの名無しさん:2008/12/08(月) 18:55:39
>>644
もう少ししたら、リア工のお出ましか
658デフォルトの名無しさん:2008/12/08(月) 18:57:43
にゅうにゅう
659デフォルトの名無しさん:2008/12/08(月) 18:57:46
こうやって統計とってみるとよく分かるな
レス間隔は狭いが、次のレスまで30秒以上は空いている
つまり粘着してるのは一人

>>612 2008/12/08 15:41:56
>>616 2008/12/08 16:42:24
>>618 2008/12/08 16:55:11
>>626 2008/12/08 18:07:26
>>630 2008/12/08 18:14:41
>>633 2008/12/08 18:19:50
>>635 2008/12/08 18:26:44
>>637 2008/12/08 18:27:37
>>638 2008/12/08 18:27:57
>>640 2008/12/08 18:30:50
>>643 2008/12/08 18:34:20
>>645 2008/12/08 18:40:53
>>647 2008/12/08 18:42:15
>>648 2008/12/08 18:43:19
>>652 2008/12/08 18:49:56
>>653 2008/12/08 18:50:45
>>655 2008/12/08 18:52:39
>>656 2008/12/08 18:54:57
660デフォルトの名無しさん:2008/12/08(月) 19:00:24
つまり粘着してるのは一人 >>659
ですよね。
661デフォルトの名無しさん:2008/12/08(月) 19:01:12
学校で嫌なことでもあったんだろ
先生に怒られたとか、同級生にいじめられたとか

ネットで憂さ晴らしなんて情けないやつだな
662デフォルトの名無しさん:2008/12/08(月) 19:01:16
ちげーよwwwwwwwwwwwww
663デフォルトの名無しさん:2008/12/08(月) 19:01:35
>>659のキモさがよく伝わるスレですね。
664デフォルトの名無しさん:2008/12/08(月) 19:02:21
7時になった、タイムカード押して蛙よ
665デフォルトの名無しさん:2008/12/08(月) 19:05:43
いつもの「目覚ましと時計を作った」人でしょw
666デフォルトの名無しさん:2008/12/08(月) 19:15:47
俺のとこと未だに非現代的なタイムカードなんだが
お前らのところ、社員IDカードで入退室や勤務時間管理してるよな
667デフォルトの名無しさん:2008/12/08(月) 22:23:05
なんか最近MSDNが更新されてるね
__inとか__outとか
Function InformationがRequirementsになったり
Security Remarksとか(これは以前からある?)
しかも一部のAPIだけ
668デフォルトの名無しさん:2008/12/08(月) 23:03:23
まじなんでこいつらこんなに性格悪いのw
669デフォルトの名無しさん:2008/12/08(月) 23:06:48
普通じゃないからね
670デフォルトの名無しさん:2008/12/08(月) 23:08:29
>>668
知らないならレスしないで下さい。ウザイだけです。
671デフォルトの名無しさん:2008/12/08(月) 23:11:44
Win32経験者は極力採用を控えるようにしよう
672デフォルトの名無しさん:2008/12/08(月) 23:18:44
これを良く見てよく見るんですよ、10分以上見るんですよ
http://www.deli-cake.com/img/x-apple-top.jpg

落ち着いたか
673デフォルトの名無しさん:2008/12/08(月) 23:38:51
>>619
日本語でおk
674デフォルトの名無しさん:2008/12/09(火) 00:02:29
>>667
ヘッダファイルを見ていると、__inとかは少なくともVS2005あたりから付くようになった。
http://msdn.microsoft.com/ja-jp/library/ms235402.aspx
Windows SDK付属のコンパイラやVS Team Suiteとかのコンパイラだとそれ見て警告とか出してくれるらしい。
http://msdn.microsoft.com/ja-jp/library/ms173498.aspx
675デフォルトの名無しさん:2008/12/09(火) 00:14:56
win32apiを開発で使ってるならSALって常識じゃないのか
DDKはかなり前からその記述スタイルだ
676デフォルトの名無しさん:2008/12/09(火) 00:19:37
いやweb版のMSDNがね
677デフォルトの名無しさん:2008/12/09(火) 00:25:12
web版でもDDK関係はSALスタイルになっているよ
678デフォルトの名無しさん:2008/12/09(火) 00:58:34
__out_ecount_partとか__field_ecount_optとかついてて見づらい
679デフォルトの名無しさん:2008/12/09(火) 09:34:07
Win32APIの範囲の質問にはまともに解答が付いているというのに
680デフォルトの名無しさん:2008/12/09(火) 09:36:04
どこがw
681デフォルトの名無しさん:2008/12/09(火) 10:16:45
まともな質問にはまともな答えが返ってくる
おかしな質問にはおかしな答えが返ってくる
682デフォルトの名無しさん:2008/12/09(火) 10:18:45
俺は判らないから自分で調べてやれ
みたいなのばっかな気がする
683デフォルトの名無しさん:2008/12/09(火) 10:19:54
>>1の注意を守ってないならまともな回答は期待しない方がいい
まともな回答が無くて逆ギレするなんて論外
684デフォルトの名無しさん:2008/12/09(火) 10:24:42
誰がどう見てもまともなスレには見えないだろ
みんな喧嘩してるだけじゃん
685デフォルトの名無しさん:2008/12/09(火) 10:31:27
って言うか、まともに答えてくれる人がいないんだよねここってw
686デフォルトの名無しさん:2008/12/09(火) 10:56:12
じゃあまともに回答できるように頑張れ。
まずはまともな質問文の書き方から頑張れ。
687デフォルトの名無しさん:2008/12/09(火) 11:23:56
レスするなよクズ
688デフォルトの名無しさん:2008/12/09(火) 11:29:08
クズするなよレス
689デフォルトの名無しさん:2008/12/09(火) 14:11:37
690デフォルトの名無しさん:2008/12/09(火) 14:21:32
レズるなよガス
691デフォルトの名無しさん:2008/12/09(火) 15:01:03
・20代は50代と同じくらいしかパソコンサイトを使っていない。
・ケータイの普及でネット利用者の底辺は広がったが、「コンピューターに対する知識の欠如」「キーボードで字を打てない」という”退化”を若い世代にもたらしている。
・ケータイの入力はキーボードと比べれば遅く、情報発信力に劣るので、ケータイ文化は「情報を受け取るだけ」の受身スタイルになるのかも。
・アップルのiポッドはこの「受身スタイル」を先取りしている。
・ブルーワーカーやフリーターはパソコンすら買えずパソコンも使えない「親指族」になる。これも「格差社会」の象徴ではないか。
692デフォルトの名無しさん:2008/12/09(火) 16:11:58
格差社会ねぇ
かつて日本が共産主義だったことなど一度もなかったんだが、なんでこんなに主張するやつが増えたんだろうね

ああ、皮肉で言ってるだけだから気にしなくていいぜ?
693デフォルトの名無しさん:2008/12/09(火) 21:09:06
>>691
一人暮らしでも手取り13万あればノートパソコン買ってインターネットできるぞ
(家賃7万以内、水道光熱通信費2万以内、飲食嗜好品日用品雑費3万以内にする)
今はノートパソコン新品でも6万で買える
収入の割りにいいもん食ったり飲んだりしてるから買えないんだよ
694デフォルトの名無しさん:2008/12/09(火) 21:23:10
MDI子ウィンドウの子ウィンドウ(以下MDI孫)を WS_OVERLAPPEDWINDOW で作成したのですが、
GetParent( MDI孫 ) が NULL になってしまいます。
また、GetWindowLong( MDI孫, GWL_HWNDPARENT ) を取得すると、
全然関係のない値が入っています。
SetWindowLong( MDI孫, GWL_HWNDPARENT, (LONG)MDI子(MDI孫の親) ); とすると、
GetParent( MDI孫 ) は依然NULLのままですが、
GetWindowLong( MDI孫, GWL_HWNDPARENT ) は設定した値が入ってきました。

SetWindowLong() をすることなく、 GetParent( MDI孫 ) で MDI子 を取得したいのですが、
何か必要な設定はあるのでしょうか?
695デフォルトの名無しさん:2008/12/09(火) 21:26:39
いくつかの文字列を1行に表示したいのですがx座標のずらし方がなかなかうまくいきません。
TEXTMETRIC の tmAveCharWidthに文字数をかけた値の分をずらしているんですが、それだと平均の幅のせいか重なってしまう事があります。
またtmMaxCharWidthにすると逆に間が空きすぎてしまいます
なにか良い方法ないでしょうか?
696デフォルトの名無しさん:2008/12/09(火) 21:27:03
イーモバ入れば100円とかあるしなー。
697デフォルトの名無しさん:2008/12/09(火) 21:57:04
携帯厨がネットブック買うとは思えない
698デフォルトの名無しさん:2008/12/09(火) 22:32:46
>>695
文字列の幅を得るにはGetExtentPoint32辺りがいいよ。
699デフォルトの名無しさん:2008/12/09(火) 22:41:41
>>698
できました!どうも
700デフォルトの名無しさん:2008/12/09(火) 22:46:55
めずらしくまともなやりとりが!
701デフォルトの名無しさん:2008/12/09(火) 22:49:03
↓以降またグダグダに戻ります
702デフォルトの名無しさん:2008/12/09(火) 22:59:27
>>701
知らないならレスしないで下さい。ウザイだけです。
703デフォルトの名無しさん:2008/12/09(火) 23:01:07
>>694
その関係はParentじゃなくてOwnerだろう
704デフォルトの名無しさん:2008/12/09(火) 23:26:40
waveOutOpenしたWAVEファイルってデータ全体をヒープに読み込んでる?
すぐに再生開始されないんだが・・・
705デフォルトの名無しさん:2008/12/10(水) 00:02:41
704です。なんか質問おかしいわw取り消す

706デフォルトの名無しさん:2008/12/10(水) 00:05:28
メモリにすべて読み込む事なく、waveを再生できて、(再生停止ができればいい 巻き戻しとかできなくていい) かつ
waveOutGetPositionのような関数で現在の再生位置を知る方法ってありますか?
707デフォルトの名無しさん:2008/12/10(水) 00:16:43
MCI_STATUS_POSITIONで似たようなことが出来ると思うが、メモリにすべて読み込むことなくってのは無理ぽいなぁ
708デフォルトの名無しさん:2008/12/10(水) 00:22:00
無理ですかねやっぱ。

最初にファイル開いて, メモリに置くときにレスポンスが悪くなるのがいやなんですよね・・・
709デフォルトの名無しさん:2008/12/10(水) 01:09:54
ある時間間隔ごとに描画するって事はどうやったらできます?
710デフォルトの名無しさん:2008/12/10(水) 01:11:49
WM_TIMER
711デフォルトの名無しさん:2008/12/10(水) 02:00:59
Sleep
712デフォルトの名無しさん:2008/12/10(水) 02:25:20
>>695
↓を利用するという手もある。
>fMode パラメータに TA_UPDATECP をセットし、出力先のデバイスコンテキストを指定して SetTextAlign 関数を呼び出せば、既定の動作を変更して、TextOut 関数を呼び出すたびにカレントポジションが使用され、更新されるようにすることができます。

>>706
waveOutWriteとダブルバッファあたりで検索すれば、ストリーミング再生の
方法が見つかると思う。

>>709
時間の間隔によって最適解は違うが、SetTimerでいいかと。
ちなみに、ウインドウを作成したスレッドではSleepは使ってはいけない。
713デフォルトの名無しさん:2008/12/10(水) 02:29:09
TA_UPDATECPでググったらVC6の割れが3番目にヒットするんだがw
714デフォルトの名無しさん:2008/12/10(水) 10:53:14
ウィンドウプロシージャにメッセージを送りたいんですが、どうやって送ればいいでしょうか?



関数である条件を満たしたときにメッセージを送るんですが、そのメッセージをHOGEとして

SendMessage(hwnd , HOGE , 0 , 0); でプロシージャに送ろうと思ってるんですが、HOGEを定義しないとダメですよね?その定義の仕方がわからないんです
715デフォルトの名無しさん:2008/12/10(水) 10:57:53
>>714
WM_APPでググれ
716デフォルトの名無しさん:2008/12/10(水) 11:33:59
>>714
#define HOGE メッセージ
const UINT HOGE = メッセージ;
enum { HOGE = メッセージ };

好きにしろ
717名無し募集中。。。:2008/12/10(水) 11:36:49
WM_USER以降でも使えない数値があるよねって事だけは覚えておいて欲しい
718デフォルトの名無しさん:2008/12/10(水) 11:38:00
プライベートクラスならWM_USER以降は全部使えるだろ。
719デフォルトの名無しさん:2008/12/10(水) 11:54:54
予約させているのとかぶらないようにしろってことですね


#define MYMSG WM_APP
#define MYMSG2 WM_APP+1

でいいんでしょうか?

720デフォルトの名無しさん:2008/12/10(水) 12:24:53
とりあえずMSDNのApplication-Defined Messagesでも読んでから聞け
ttp://msdn.microsoft.com/en-us/library/ms644927.aspx
721デフォルトの名無しさん:2008/12/10(水) 12:31:46
719じゃダメですか?
722デフォルトの名無しさん:2008/12/10(水) 12:42:24
いいよ。
723デフォルトの名無しさん:2008/12/10(水) 13:22:45
いいね、
724名無し募集中。。。:2008/12/10(水) 13:36:17
WM_APPか!WM_USER+α使ってたわ
こっそり昔のプロジェクトも直しておくか orz
725デフォルトの名無しさん:2008/12/10(水) 14:03:16
>>724
だから、自分でRegisterClassしたウィンドウならWM_USERで問題無いって
726デフォルトの名無しさん:2008/12/10(水) 14:25:10
>>724
自分でRegisterClassしたウィンドウならWM_USERで問題無いっつってんだろ!
727デフォルトの名無しさん:2008/12/10(水) 14:50:12
>>723>>726
試験期間中のくそがき
728デフォルトの名無しさん:2008/12/10(水) 15:25:39
あれ?チェックボックスの状態を変える関数ってなんだっけ?
729デフォルトの名無しさん:2008/12/10(水) 15:35:20
CheckDlgButton
730デフォルトの名無しさん:2008/12/10(水) 16:00:30
>>729
知らないならレスしないで下さい。ウザイだけです。
731デフォルトの名無しさん:2008/12/10(水) 16:02:18
工エェ(´Д`)ェエ工
732デフォルトの名無しさん:2008/12/10(水) 16:04:38
BM_SETCHECKだろ
733デフォルトの名無しさん:2008/12/10(水) 16:05:53
メッセージじゃなくて関数でお答え下さい
734デフォルトの名無しさん:2008/12/10(水) 16:13:30
BM_SETCHECK(hWnd);
735デフォルトの名無しさん:2008/12/10(水) 16:16:54
さっさと教えて下さい。。。
736デフォルトの名無しさん:2008/12/10(水) 16:21:25
CheckDlgButton関数で間違いないよ
http://msdn.microsoft.com/en-us/library/bb761875(VS.85).aspx
737デフォルトの名無しさん:2008/12/10(水) 16:22:01
>>735
くそがきウザイ
738デフォルトの名無しさん:2008/12/10(水) 16:23:16
また「目覚ましと時計」の人か
739デフォルトの名無しさん:2008/12/10(水) 16:35:52
またか
740デフォルトの名無しさん:2008/12/10(水) 16:43:12
>>738
レスするなクズ
741デフォルトの名無しさん:2008/12/10(水) 17:20:05
TEXTOUTで描画した文字をすっきり消す方法ってないですか?

場所が重なると文字がかさなってしまうので・・
742デフォルトの名無しさん:2008/12/10(水) 17:22:44
TexeOutを書かなければ描画されないわけだよ
つまりどういうことか?
743デフォルトの名無しさん:2008/12/10(水) 17:26:09
>>742
質問に質問を返すな
744728:2008/12/10(水) 17:29:54
CheckDlgButton(hDlg,IDC_CHECK1,BST_UNCHECKED );

こうですよね?こうやってもチェックが解消されないんです
745デフォルトの名無しさん:2008/12/10(水) 17:31:09
>>742
つまりTextOutで白い文字をかけって事ですか?

でも文字の線で重ならないところは元のが残るし・・・

Drawtextのほうがいいんだろうか
746デフォルトの名無しさん:2008/12/10(水) 17:44:40
>>745
WM_PAINTの処理でTextOutあるよな?
じゃあ、そこでTextOutがなくなれば?
747デフォルトの名無しさん:2008/12/10(水) 17:47:59
>>746
WM_PAINTには書いてませんよ

前の処理で描画した文字を一回クリーンにしたいんです
748デフォルトの名無しさん:2008/12/10(水) 17:49:26
ああ、そういう事か。
再描画命令以外で書いてるのか。

SetROP2(NOT);で同じ場所に同じ字かかせりゃきえるんじゃね。
やったことねーからしらんけど
749デフォルトの名無しさん:2008/12/10(水) 17:53:05
>>744
CheckDlgButton() の前に…

  ASSERT(hDlg);

と書いて、

CheckDlgButton() の後に…

  ASSERT(IsDlgButtonChecked(hDlg,IDC_CHECK1)==BST_UNCHECKED);

と書いて、Debugビルドで走らせてみな。これでASSERT()に引っかからな
ければ、どっか他でチェックボックスを変更しているな。
750デフォルトの名無しさん:2008/12/10(水) 18:00:18
動作がおかしい時には関数の返値とLastErrorを調べるのは基本だろ
751デフォルトの名無しさん:2008/12/10(水) 18:05:13
>>747
文字を書く前にしたことと同じことやればいい。
もう無いってんならどっかに取っておくしかないが
WM_PAINTに対応してるならそんなことないはず
752デフォルトの名無しさん:2008/12/10(水) 18:08:10
WM_PAINTで描画してないって・・・
Aero切ったりXPに持っていったらウィンドウを重ねた時に再描画されなかったりしてw
753デフォルトの名無しさん:2008/12/10(水) 18:25:13
>>741
分らないなら、そんな質問しないでください。ウザイだけです。
754デフォルトの名無しさん:2008/12/10(水) 18:30:55
目覚まし君ウザイよ
755デフォルトの名無しさん:2008/12/10(水) 18:37:56
>>741
描画時の座標と返り値のSIZE使ってFillRect
756デフォルトの名無しさん:2008/12/10(水) 18:41:11
>>741
windowを破壊して、新たにwindowをCreateしろ
757デフォルトの名無しさん:2008/12/10(水) 18:41:23
>>749
ASSERTがコンパイル通りません・・・

環境はVC++20008expressです
758デフォルトの名無しさん:2008/12/10(水) 18:46:41
>>757
そう、で?
759デフォルトの名無しさん:2008/12/10(水) 18:47:49
>>757
2万年後から来た奴に何のアドバイスができるんだよ
760デフォルトの名無しさん:2008/12/10(水) 18:48:11
あああ間違いました。2008です
761デフォルトの名無しさん:2008/12/10(水) 18:51:29
すんません。ほんとは2009ですた><
762デフォルトの名無しさん:2008/12/10(水) 18:52:34
>>759
その程度も間違いだとわからないお前はレスするなクズ
763デフォルトの名無しさん:2008/12/10(水) 18:52:46
ASSERTでググって見れば?
764デフォルトの名無しさん:2008/12/10(水) 18:52:54
やっぱり20008で合ってました。ごめんなさい未来に帰ります。。。
765デフォルトの名無しさん:2008/12/10(水) 18:54:22
2万年後もやっぱりウィンドウズですか?
766デフォルトの名無しさん:2008/12/10(水) 18:54:25
スレ違いだからVC++スレに行ってね
767デフォルトの名無しさん:2008/12/10(水) 18:55:32
そういやそうだな
768デフォルトの名無しさん:2008/12/10(水) 19:39:28
>>741
適切に背景色とか設定してExtTextOutしろ。
769デフォルトの名無しさん:2008/12/10(水) 21:55:52
MSの開発者センス悪いな
なんでVK_A〜Zがねぇの?
だせぇよ
770デフォルトの名無しさん:2008/12/10(水) 22:25:47
そんなあなたにセンス溢れるDirectInput
771デフォルトの名無しさん:2008/12/10(水) 22:47:36
#define >>769 unko
772デフォルトの名無しさん:2008/12/10(水) 22:51:37
GetClipboardData( CF_HDROP ) の戻り値は GlobalLock/GlobalUnlock に渡して使うんですか?
そのままHDROPとしてDragQueryFileに渡してるサンプルも見かけるんですが
どうなんでしょうか? たしかにどっちでも動くっぽいんですが……
773デフォルトの名無しさん:2008/12/10(水) 23:04:03
ドキュメントにはDrawQueryFileで情報を受け取れると書いてあるな。
というか、GlobalLock/Unlockなんて一言も書いてないぞ。
774デフォルトの名無しさん:2008/12/10(水) 23:12:17
>>772
>GetClipboardData( CF_HDROP ) の戻り値は GlobalLock/GlobalUnlock に渡して使う
そんことしているはどのサンプル? そのサンプル示すなりあるニダ
775デフォルトの名無しさん:2008/12/10(水) 23:21:25
単に上書き防止のためにロックしてんじゃね
776デフォルトの名無しさん:2008/12/11(木) 00:15:52
HDROPの実体はDROPFILESなどへのグローバルハンドル(移動可能なメモリ)だよ。
自分からドラッグドロップを始めたり、クリップボードにセットするコードを書くときは、
それを使ってHDROPのインスタンスを作成する。

MSDNライブラリでも、そうだと明言した資料をほとんど見かけないんだけどね。
http://msdn.microsoft.com/en-us/library/bb776904.aspx
「Extracting the File Names from the Data Object」の中らへん
> The HDROP variable is now a handle to a DROPFILES structure followed by
> a double null-terminated string containing the fully qualified file paths of the copied files.

だから、逆にHDROPをGlobalLockして中身を直接見るのも問題ないのだろう。
777772:2008/12/11(木) 00:20:40
どうもありがとうございました。
778デフォルトの名無しさん:2008/12/11(木) 01:11:35
もうだめだこのスレ
779デフォルトの名無しさん:2008/12/11(木) 01:14:13
もうだめだ?
いやいや、ずっと前からだめなまんまだろ
780デフォルトの名無しさん:2008/12/11(木) 06:15:45
490 :デフォルトの名無しさん:2008/12/07(日) 15:44:34
もうだめだこのスレ

580 :デフォルトの名無しさん:2008/12/08(月) 01:43:56
もうだめだこのスレ

778 :デフォルトの名無しさん:2008/12/11(木) 01:11:35
もうだめだこのスレ
781デフォルトの名無しさん:2008/12/11(木) 11:18:26
レスのこだめだうも
782デフォルトの名無しさん:2008/12/11(木) 11:21:52
NULLぽ
783デフォルトの名無しさん:2008/12/11(木) 11:25:40
ガッ
784デフォルトの名無しさん:2008/12/11(木) 11:29:15
http://www.kumei.ne.jp/c_lang/sdk/sdk_31.htm
のButton_SetCheckマクロ使おうとすると識別子がないってなるんだけど、どこで定義されてますか_
785デフォルトの名無しさん:2008/12/11(木) 11:34:24
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
786デフォルトの名無しさん:2008/12/11(木) 11:36:32
>>784
windowsx.h
787デフォルトの名無しさん:2008/12/11(木) 11:36:59
>>785
質問していません。独り言です。
788デフォルトの名無しさん:2008/12/11(木) 11:43:44
>>787
新しいなwwwワロタwww
789デフォルトの名無しさん:2008/12/11(木) 11:46:30
ドラクエ10がWiiで出るらしいんですが、どうしたらいいでしょう?
790デフォルトの名無しさん:2008/12/11(木) 11:48:14
買うしかないな。
791デフォルトの名無しさん:2008/12/11(木) 12:04:59
ダイアログプロシージャの頭で宣言した変数は、ダイアログが呼び出されたときに一度だけ宣言されるんですか?

BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp){

int count =0;


switch( msg ){

case WM_COMMAND:

switch( LOWORD( wp ) ){

case HOGE;
count++;



みたいにしたらcountがうまく加算されていきますか?
792デフォルトの名無しさん:2008/12/11(木) 12:08:58
staticつけなきゃ毎回新しい0のcountだな。
staticつけると、複数のウィンドウで同じプロシージャ使った場合も共有されるが。
793デフォルトの名無しさん:2008/12/11(木) 12:09:40
>>791
されない

APIに触る前に変数とスコープの勉強して来い
794デフォルトの名無しさん:2008/12/11(木) 12:10:31
またダイアログ君かよ。
795デフォルトの名無しさん:2008/12/11(木) 12:17:15
case HOGE;

コンパイル通りまへん
796デフォルトの名無しさん:2008/12/11(木) 12:18:34
staticがどうとか既にAPIじゃなくて言語仕様の範疇だし
CスレかC++スレ行けよハゲ
797デフォルトの名無しさん:2008/12/11(木) 12:21:32
>>792
なるほど!

>>793
変数とスコープのことはわかってるんですが・・・


ダイアログ呼び出すのは1回だけなんで、1回だけ初期化されるんだと思ってました
798デフォルトの名無しさん:2008/12/11(木) 12:34:00
分かってないからそういう質問が出て来るんだよボケ。
799デフォルトの名無しさん:2008/12/11(木) 12:36:00
>>798=「目覚ましと時計」君
800デフォルトの名無しさん:2008/12/11(木) 12:43:19
まあ認識半分ってとこだろうな
801デフォルトの名無しさん:2008/12/11(木) 14:20:25
HOGEって変数名はやっぱhogeって小文字でするべきでしょうか?
802デフォルトの名無しさん:2008/12/11(木) 14:23:49
好きにしてください('A`)

で、APIと何の関係が?
803デフォルトの名無しさん:2008/12/11(木) 14:24:12
hogeって変数名はやっぱHOGEって大文字でするべきでしょうか?
804デフォルトの名無しさん:2008/12/11(木) 14:29:04
ハゲは黙っててください。眩しいだけです。
805デフォルトの名無しさん:2008/12/11(木) 14:29:47
hugeならするべき
806デフォルトの名無しさん:2008/12/11(木) 14:30:22
お前ら面白いな
毎日楽しませてもらってるよ
807デフォルトの名無しさん:2008/12/11(木) 15:00:52
アイコンを自分でつくったアイコンにするのってどうやんの?
808デフォルトの名無しさん:2008/12/11(木) 15:09:57
どこのアイコン?
exeファイル? ウィンドウ? もっと他の何か?
809デフォルトの名無しさん:2008/12/11(木) 15:09:57
アイコンエディタでアイコンを描く。
810デフォルトの名無しさん:2008/12/11(木) 15:12:06
>>809
的外れなレスはしないで下さい。ウザイだけです。
811デフォルトの名無しさん:2008/12/11(木) 15:13:53
>>808
EXEアイコンおよび、ウィンドウの左にでるアイコンです

ResEditでかいたアイコンを

wc.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));

で読んでるんですが、アイコン部分がなにも表示されなくなるんですよね・・
〜.exeのアイコンも真っ白です
812デフォルトの名無しさん:2008/12/11(木) 15:16:50
作ったリソースをexeにリンクしてないとか
813デフォルトの名無しさん:2008/12/11(木) 15:22:47
それはどうやるんですか?
814デフォルトの名無しさん:2008/12/11(木) 15:25:25
リソースエディタでつくってるんだからリンクは勝手にされてんじゃないの?
815デフォルトの名無しさん:2008/12/11(木) 15:27:37
今気づいたんですが、リソースエディタ上では書いた絵がみえるのに、保存されている 〜.icoをみると真っ白ですね・・・
たぶんこのせいですね
816デフォルトの名無しさん:2008/12/11(木) 15:28:47
二度と来んなカス
817デフォルトの名無しさん:2008/12/11(木) 15:37:05
16x16アイコンが白のままといった所か
818デフォルトの名無しさん:2008/12/11(木) 15:38:48
>>817
俺もそう思う。
環境書けばすぐ答えられるのにな。
ってそもそもAPI関係なさそう
819デフォルトの名無しさん:2008/12/11(木) 15:40:09
>>817-818
知らないのにご苦労様です^^
820デフォルトの名無しさん:2008/12/11(木) 16:00:23
ここ最近わざとやってるとしか思えないようなスレ違いの質問しか無い

たぶん質問のフリして食いついてきた奴を煽りたい為にネタを撒いてるだけだろ
821デフォルトの名無しさん:2008/12/11(木) 16:05:07
お前がそういうレスするからだろ。わかれよクズ
822デフォルトの名無しさん:2008/12/11(木) 16:05:59
> あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw
> フリーソフトにすら公開してねーけどw

↑この人が粘着してるだけだよ。みんな釣られすぎ。
823デフォルトの名無しさん:2008/12/11(木) 16:08:17
>>822
お前が粘着してるだけだと思うが
824デフォルトの名無しさん:2008/12/11(木) 16:10:35
次の質問どぞー
825デフォルトの名無しさん:2008/12/11(木) 16:12:36
目覚ましと時計を作ったのですが、どうすればいいでしょう?
826デフォルトの名無しさん:2008/12/11(木) 16:13:19
寝ろ
827デフォルトの名無しさん:2008/12/11(木) 16:51:48
 ラジオ発言を一部ヒアリング
植田 あたしはーその後にものすごい考えたのよ。
清水 ウフフフ(笑)
植田 このオヤジをー、社会的に抹殺とか、とにかく辱めてー、
    あいつが悪い方にさせるにはどうしたらいいのかって考えたわけ。
清水 うん(笑)
植田 まずは、んでね?結局辿り着いたのが、そこで大声をあげる!
清水 ウフフフ(笑)
植田 最も、あたしの、定評のある悲鳴をあげる!
清水 あはは(笑)キャー!!(笑)
植田 ものすっごい悲鳴をあげてー、とりあえず誰か、あのー呼んで来てください!っていう。
清水 鉄道警察呼ぶ?って言ってた(笑)
植田 そう、言ってた(笑)んでまずそこで、あの駅員さん呼んで来い!呼んで来て!って
    誰かに呼んで来てもらってー、んでみんなにー、
    すみません携帯で警察に電話させてくださいって電話してー、
    今どこどこの何両目に乗ってるんだけどー、なんかすごい絡まれて大変なんでー、
    次の駅に警察待たせといてくださいっていう。そこまできたら、あいつ絶対焦るからー。
清水 焦るね(笑)ウフフ!いやー(笑)
植田 そこで手ぇ出されてもこっちのもんなのよ。
清水 そうだね。向こうが悪いもんね。
植田 んで名誉毀損で訴えます!じゃん。名誉毀損がプラスー、傷害事件になるかなーって。感じじゃない?
清水 うんそれをさー、腹立ったねーって降りた後にさー、言ってた後にさー、
植田 うん。
清水 その後に駅降りてからさー、あたし達タクシーで移動したじゃない?
植田 うん。
清水 タクシーの中でさー、かなちゃんがさー、ずっと黙ってたからどうしたのかなーって思ったら
    「やっとわかったー!」って言ったから(笑)ウフフフフフ(笑)
植田 その時の対処法は!
二人  (大笑)
清水 もうあのおじさんに会ってから20分ぐらい経ってるよ!みたいな(笑)
828デフォルトの名無しさん:2008/12/11(木) 16:56:10
「目覚まし男と時計の国」という題名で戯曲が書けそうです?
徹夜になるので21:00に起こしてください?
829デフォルトの名無しさん:2008/12/11(木) 16:59:33
目覚まし男に粘着してる馬鹿が一人で荒らしてるって結論になったわけだが。
830デフォルトの名無しさん:2008/12/11(木) 17:29:43
>あと俺は指定した時間にMP3を再生する目覚ましと時計を作ったよw

目覚まし男って凄いな、MP3を再生するのを自分でwin32apiつかって作ったのか
粘着男、自分で出来ないから嫉妬しちゃタンだな。俺も出来ないけど
831デフォルトの名無しさん:2008/12/11(木) 17:47:14
↑話を理解してない馬鹿
832デフォルトの名無しさん:2008/12/11(木) 17:48:57
↑毎日このスレを荒らしてる馬鹿
833デフォルトの名無しさん:2008/12/11(木) 17:56:49
↓馬鹿は無視してまともな質問をどうぞ
834デフォルトの名無しさん:2008/12/11(木) 17:57:43
目覚まし君とは、

.netでMP3を再生するためにwin32api (mciSendString) を知り、
「俺は.netとwin32apiの両刀使いだがここにはwin32しか使えないオッサンだらけw」と
一人で勝手に妄想して優越感に浸ってるゆとり世代の少年

です
835デフォルトの名無しさん:2008/12/11(木) 18:00:41
>win32しか使えないオッサンだらけ
は事実だろ
836デフォルトの名無しさん:2008/12/11(木) 18:03:11
Win32.NETしか使えないオッサンですが何か?
837デフォルトの名無しさん:2008/12/11(木) 18:03:45
↓世代妄想馬鹿は無視してまともな質問をどうぞ
838デフォルトの名無しさん:2008/12/11(木) 18:04:29
MP3を再生するapiを教えてください
by 目覚まし
839デフォルトの名無しさん:2008/12/11(木) 18:08:18
mcisendcommand
840デフォルトの名無しさん:2008/12/11(木) 18:12:07
System.Windows.Multimedia.Audio.Sound.SoundFX.FileFormat.MP3.PlaySound
841デフォルトの名無しさん:2008/12/11(木) 18:17:43
駄伊例区戸照
842デフォルトの名無しさん:2008/12/11(木) 18:22:51
別にShellExecuteでもいいじゃないか
843デフォルトの名無しさん:2008/12/11(木) 18:35:15
何をShellExecuteするんだよ
844デフォルトの名無しさん:2008/12/11(木) 18:41:09
このスレのおっさん:MP3playerを....ShellExecute
目覚まし:MP3デコーダをwin32apiで開発

若いっていいのう
845デフォルトの名無しさん:2008/12/11(木) 18:45:29
> MP3デコーダをwin32apiで開発
何この馬鹿っぽい発言
846デフォルトの名無しさん:2008/12/11(木) 18:50:02
>>843もかなり馬鹿っぽいが
847デフォルトの名無しさん:2008/12/11(木) 18:52:11
MP3デコーダをC言語で開発、ならわかるが、
デコーダなんてアルゴリズム的な計算してるだけなのにwin32apiとか関係ないだろw

てか、目覚まし君はどうせならMP3デコーダをC#やVBで書けばいいのにね
リアルタイムデコード可能な速度が出るかどうかは知らんが
848デフォルトの名無しさん:2008/12/11(木) 18:57:28
>>847
H264とかならまだしも、MP3のデコード如き今時のCPUなら余裕じゃねぇの
JavaSoundとかはPure JavaでMP3フレームのデコードをやってるはずだが
849デフォルトの名無しさん:2008/12/11(木) 19:03:05
そういや随分前にVB(4か5ぐらい?)だけでCRC計算とかJPEG保存するソース拾ったが
ネイティブコンパイルしても実用には遠く及ばない速度だった記憶ならあるw
850デフォルトの名無しさん:2008/12/11(木) 19:48:16
MP3デコードなんて10年くらい前のPCでも余裕だが
Javaはよく知らんが最近リアルタイムでデコードできるようになったの?良かったね
851デフォルトの名無しさん:2008/12/11(木) 20:06:37
Javaだの.NETだのはCの1/2ぐらいの計算能力はあるぜ
起動はアホみたいに遅いけどな
MP3ぐらいは余裕であたりまえ
852デフォルトの名無しさん:2008/12/11(木) 20:08:41
ここ本当に爺が多いんだな
853デフォルトの名無しさん:2008/12/11(木) 20:11:40
DirectShow
854デフォルトの名無しさん:2008/12/11(木) 20:14:23
>>852
「目覚ましと時計」を今すぐうpするんだ。
855デフォルトの名無しさん:2008/12/11(木) 20:18:49
>>853
ここで質問しててるような奴が自力でCOM呼ぶとか無理だろ
856デフォルトの名無しさん:2008/12/11(木) 20:24:35
>>854
schtask.exeでも叩いてろ

>>855
C#ならquartz.dllの参照を使うだけだ
勝手にラッパーが作られるし何も難しいことはない
つーかVBScriptでも出来る仕事だろ
857デフォルトの名無しさん:2008/12/11(木) 20:39:41
>>856
なんでC#の話してんの?馬鹿なの?
858デフォルトの名無しさん:2008/12/11(木) 20:42:46
物理ドライブの番号から
論理ドライブ(A:B:C:D:など)を取得する関数ってありますか?
859デフォルトの名無しさん:2008/12/11(木) 20:43:21
>>857
なら#importでも使ってろ、これでいいか?
860デフォルトの名無しさん:2008/12/11(木) 20:45:15
>>856
schtaskなんてねーよ馬鹿
861デフォルトの名無しさん:2008/12/11(木) 21:02:15
セキュリティ関係の質問です。

ttp://screencasters.heathenx.org/wp-content/videos/ep070/ep070.html
↑の動画で現在押されているキーがリアルタイムで表示されますが、
GetAsyncKeyStateを使って同じような物を作ってテストしていたところ
一部のアプリケーションがフォアグラウンドのときはキーの状態が
取得できませんでした。DirectInputでも同様に取得できませんでした。

たぶんキーロガー対策だと思いますが、nProtect等は使われていないので
もっと単純な仕組みのようです。
むしろこちらの技術に興味を持ってしまったのですが、これはプロセスの
セキュリティ設定等で簡単にできるんでしょうか?

ちなみにテスト環境はVista SP1です。
862デフォルトの名無しさん:2008/12/11(木) 21:04:53
mpg123.exe
863デフォルトの名無しさん:2008/12/11(木) 21:08:03
Winでプログラム作らないといけなくなりました。
うにっくすでの
(a) find . | xargs grep HOGE
(b) grep -r HOGE .
みたいな動作を実現するAPIありませんか?

864デフォルトの名無しさん:2008/12/11(木) 21:11:18
>>861
つーか、取り方がまずいだけじゃね? フックなりフィルタドライバなりで取るのが普通。

>>863
ない。Unix にもないし。
865デフォルトの名無しさん:2008/12/11(木) 21:11:28
本当にそれがやりたいだけならcygwinかperlかrubyかpythonでも
入れたほうがいいぞ

それと、Windowsならパスに空白が入ってることは日常茶飯事だから
そのfindやxargsの使い方はNGだ
866デフォルトの名無しさん:2008/12/11(木) 21:13:54
>>863
API=Winのシステムコール

システムに関係のないものがあるわけないだろ
867デフォルトの名無しさん:2008/12/11(木) 21:19:26
ファイルの探索にはFindFirstFile()等のAPIが使える
正規表現はAPIとしては存在しないので、
boost.regexなどのライブラリを使えばいい

勿論、シェルのワンライナーで済む仕事を、多分100行とかかけて
記述することになるがな
868デフォルトの名無しさん:2008/12/11(木) 21:31:56
>>861
管理者として実行
869デフォルトの名無しさん:2008/12/11(木) 21:59:52
//(a)
HANDLE hOut = Find(NULL, _T("."));
hOut = XArgs(hOut, Grep(hOut, _T("HOGE")));

//(b)
HANDLE hOut = Grep(NULL, _T("-r"), _T("HOGE"), _T("."));

//結果表示
ReadFile(hOut,buf,sizeof(buf),&d,NULL);
MessageBoxA(NULL,buf,"結果",MB_YES);
870デフォルトの名無しさん:2008/12/11(木) 22:21:28
PowerShellってすっかり忘れられてるよな
871863:2008/12/11(木) 22:23:58
みんな、ありがとう。

漏れとしてもひとつのAPIで機能を実現出来るとは思っていなくて
なんかんとなんかを組み合わせてやるんだろうけど、なんかって
なんだろ?ってことで聞いてみた。

基本は>>867みたいな感じですかね。

もし正規表現検索でなくて単なる文字列検索だとしても
boost.regexを使うことになってしまいますか?
872デフォルトの名無しさん:2008/12/11(木) 22:25:18
_tcscmp
873デフォルトの名無しさん:2008/12/11(木) 22:38:18
>>871
めんどくさいなら.NETつかえばいいよ。
874デフォルトの名無しさん:2008/12/11(木) 22:45:48
正規表現のAPIくらい標準で用意しとけよなー
875デフォルトの名無しさん:2008/12/11(木) 22:50:31
APIであっても誰も使わん
876デフォルトの名無しさん:2008/12/11(木) 23:00:40
>>874
正規表現みたいな代物にはシステム依存性は全く無く
ANSI Cの範疇で移植性の高い形で記述できるわけだから、
Windowsでしか使えないAPIやシステムコールの形で提供されても仕方が無い
もっともUnixは伝統的に正規表現ライブラリをlibcの中に持っているが
877デフォルトの名無しさん:2008/12/11(木) 23:05:12
>>876
ばーか
Str〜系やPath〜系のAPIがあるだろが

尤もPathMatchSpecは*?しか使えないから役に立たんが
878デフォルトの名無しさん:2008/12/11(木) 23:07:27
BOOL StrCmpRegExp(LPCTSTR lpStr1, LPCTSTR lpStr2);

こういうのがあればいいんだがな
879デフォルトの名無しさん:2008/12/11(木) 23:08:56
正規表現とワイルドカードは別物なんだが…
880デフォルトの名無しさん:2008/12/11(木) 23:09:20
>>877
Path〜系は一応システム依存性あるだろ
まあlibcに同等の奴があるようなAPIも多いが

>>878
毎回正規表現をコンパイルさせる気か
881デフォルトの名無しさん:2008/12/11(木) 23:55:07
>>874
VBScript.RegExpで勘弁してくれ。
882デフォルトの名無しさん:2008/12/11(木) 23:58:49
そんなウイルス量産機使えるかよ
883デフォルトの名無しさん:2008/12/12(金) 01:13:49
大人しくboost::xpressive使ってバイナリもりもり増やすとイイヨ!
884デフォルトの名無しさん:2008/12/12(金) 01:42:50
std::tr1::regexでがんばります
885デフォルトの名無しさん:2008/12/12(金) 06:13:48
>>882
comとして使うだけなのに何がウィルスなの(・∀・)ニヤニヤ
886デフォルトの名無しさん:2008/12/12(金) 08:10:04
>>880
>>878はStrCmpLogicalみたいにStrCmpRegExpというAPIも用意しろって意味だろ
887デフォルトの名無しさん:2008/12/12(金) 09:17:49
>>886
>>880は、StrCmpRegExp()という>>878のAPIが、毎回正規表現をコンパイルして
コンパイルしたものを再利用できないインタフェースになっている点を
突っ込んでるんだろ
キャプチャやオプション等の指定もできないけどな
888デフォルトの名無しさん:2008/12/12(金) 10:11:39
*?[]^$ くらいならオートマトン作るほどの物でも無かろう
889デフォルトの名無しさん:2008/12/12(金) 10:33:02
ラムは好きだがマトンはちょっと……
890デフォルトの名無しさん:2008/12/12(金) 10:34:40
道民っぽいボケ乙
891デフォルトの名無しさん:2008/12/12(金) 11:11:12
ラムは北海道だけって思ってる無知乙
892デフォルトの名無しさん:2008/12/12(金) 11:20:54
メッセージボックス出したときのポンって音なくす方法ありますか?
893デフォルトの名無しさん:2008/12/12(金) 11:25:09
メッセージボックスっぽい自作ダイアログ作る
894デフォルトの名無しさん:2008/12/12(金) 11:30:08
自分で作るしかないですかね?
895892:2008/12/12(金) 11:32:33
>>894
誰だよwww成りすまさないで

>>893
それしかないですか?

896892:2008/12/12(金) 11:36:00
さっさと答えてくださいよ
897デフォルトの名無しさん:2008/12/12(金) 11:36:14
結局同じ事聞いてんじゃんwwwww
898デフォルトの名無しさん:2008/12/12(金) 11:38:16
同じ事を聞いたからといって成りすましていいという理由にはならない

>>894>>896>>897
死ね
899892:2008/12/12(金) 11:39:23
>>898
も俺じゃないですから・・・
IDさえあれば・・・
900デフォルトの名無しさん:2008/12/12(金) 11:41:57
>>892-899
一人で何やってんの?
901デフォルトの名無しさん:2008/12/12(金) 13:10:38
暇だったから
902デフォルトの名無しさん:2008/12/12(金) 22:28:24
createwindowでウインドウ作成して、
プロシージャでWM_CREATEの時に-1を返して
createwindowsを失敗させました。
そのときに、メッセージボックスを出すようにしてたのですが、
一瞬で消えてしまうようです(音が一瞬でる)。
メッセージボックスがGetMessageでメッセージを取得し、
何かのミスで、間違って閉じられているのでしょうか?
903デフォルトの名無しさん:2008/12/12(金) 22:31:48
HWND の指定はどうしてんの?
904902:2008/12/12(金) 22:33:16
>>903
MessageBox( NULL , NULL , NULL ,MB_OK );
905デフォルトの名無しさん:2008/12/12(金) 22:46:17
>>904
噴いたw
906デフォルトの名無しさん:2008/12/12(金) 22:46:39
HWND_DESKTOP
907デフォルトの名無しさん:2008/12/12(金) 22:48:00
父ちゃんなしで子供作れたっけ?
908デフォルトの名無しさん:2008/12/12(金) 23:04:40
HWND_DESKTOP を MessageBox に使うのって正しいんだっけ?
MapWindowPoints に使うぐらいだと思ったのだけど。

http://msdn.microsoft.com/en-us/library/ms632597(VS.85).aspx
There are special constants that can replace a window handle in certain functions.
For example, an application can use HWND_BROADCAST in the SendMessage and
SendMessageTimeout functions, or HWND_DESKTOP in the MapWindowPoints function.

逆に MessageBox の第1引数に NULL を指定するのは全く問題ない。

http://msdn.microsoft.com/en-us/library/ms645505.aspx
If this parameter is NULL, the message box has no owner window.
909902:2008/12/12(金) 23:09:51
>>905何かおかしいところがあるのでしょうか?
>>906 NULLをやめHWND_DESKTOPにしてみました。(void*)0?なので変わらない気もするのですが。
>>907ウインドウが失敗してるので、親はなしです。
HWND hWnd = CreateWindow( L"classname" , L"titlename" , WS_OVERLAPPEDWINDOW , 0 , 0 , 500 , 300 , NULL , hInst , 0 );
int ret;
if( hWnd == NULL )
{
ret = MessageBox( HWND_DESKTOP , L"失敗しました" , NULL , MB_OK );
return 0;
}
ShowWindow( hWnd , SW_SHOWNORMAL/*nCmdShow*/ );
UpdateWindow( hWnd );
while( GetMessage( &msg , NULL , NULL , NULL ))
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
return 0;
ちなみ ret == 1でした。

もしかしてCreateWindow自体がGetMessage?を呼んでてそれが原因とか?
910デフォルトの名無しさん:2008/12/12(金) 23:10:11
HWND_DESKTOP じゃないけど MessageBox の第1引数に GetDesktopWindow を
指定するのなんかは、もう言語道断ですね。
ttp://blogs.msdn.com/oldnewthing/archive/2004/02/24/79212.aspx
911902:2008/12/12(金) 23:27:01
WM_CREATE内で失敗が起こる可能性があるときは、WM_CREATE内でメッセージボックスを出すか、WM_CREATE内では失敗する可能性があるものは処理せず、Createが成功した後で、メインスレッドないで処理をするのが普通なのでしょうか?
912デフォルトの名無しさん:2008/12/12(金) 23:28:42
>>909
Unicode決め打ちかよ
913デフォルトの名無しさん:2008/12/12(金) 23:30:13
LPWSTR使うんなら、APIもWを明示的に指定したほうがいいな
914デフォルトの名無しさん:2008/12/12(金) 23:48:06
PeekMessage を呼んでキューに溜まってた WM_SETTEXT を削除したら
メッセージが出たけど、理由は説明できません。。。
915デフォルトの名無しさん:2008/12/12(金) 23:54:09
ウィンドウプロシージャのソースも出せよ
916デフォルトの名無しさん:2008/12/13(土) 00:02:47
vista VS2008でMSXMLを利用したアプリつくってるんだが、

xpのPCで実行しようとしたらランタイムエラーをはきだしたんだ

MSXMLを利用してからこうなった

#import "msxml4.dll"
でインポートしてるわけだが、どこのフォルダからmsxml4.dllを
探してくるんだ?
xpのほうはsystem32にちゃんとmsxml4.dllがあるわけだが、どうも実行できない

誰か経験者いませんか?

VSのコード生成はマルチスレッドのMTです
917デフォルトの名無しさん:2008/12/13(土) 00:04:46
>>916
めんどくせぇから一度そのDLLを実行ファイルと同じディレクトリにおいてみろ
918デフォルトの名無しさん:2008/12/13(土) 00:07:12
>>909
WM_DESTROYでPostQuitMessageしてるんだろ?
で、MessageBox内のメッセージループが速攻終了してるんだろう。
919デフォルトの名無しさん:2008/12/13(土) 00:16:06
>>916
インスタンスの作成にCoCreateInstanceを呼び出すわけで、
msxml4.dllの場所はレジストリを検索して見つける。

とりあえず最新のMSXML4をインストールしてみたら?
http://www.microsoft.com/downloads/details.aspx?FamilyID=96a4413c-5261-4f69-83d0-932c430abd14&DisplayLang=ja
920デフォルトの名無しさん:2008/12/13(土) 00:26:40
>>918

それでもえらったよ

>>919

ということは実行XP側で事前にインストしなくちゃいけないってこと?
921デフォルトの名無しさん:2008/12/13(土) 00:29:22
情報後出しだけでもうざいのに、そのうえ的外れな部分のソース出されてもねぇ
922902:2008/12/13(土) 00:32:26
>>914
ありがとうございました。
WM_QUIT 0x0012がきてましたので、それを消したらメッセージボックスがでました。
>>918
そのとうりでした。
ありがとうございました。
923デフォルトの名無しさん:2008/12/13(土) 00:41:06
>>919
MSXML4は素のWindows XPには入っていないよ。
XPに初めからあるのはMSXML3(IE6附属でもある)。
あと、SP3にMSXML6が付いてくる。

MSXML4でライセンス的・技術的に可能かどうかは知らないけど、
RegFree COMといって、COMコンポーネントをレジストリに登録せずとも使う方法は一応ある。
924デフォルトの名無しさん:2008/12/13(土) 00:45:36
そこまでレジストリを毛嫌いしなくてもいいだろ
どうせMSXMLが内部でレジストリに何か書き込んだりしてるって
925デフォルトの名無しさん:2008/12/13(土) 00:47:56
>>923

msxml4.dll は 一緒にアプリと配布していいみたいだけど
事前にmsxml4.dllをいれておいてインストとかめんどいことしないで
実行させたいんだ。(配布目的)

ダイナミックリンクの方法をとりたいわけだが方法がわからない・・・
926デフォルトの名無しさん:2008/12/13(土) 00:50:38
XMLLiteでいいんじゃねーの?
927デフォルトの名無しさん:2008/12/13(土) 00:52:21
IE7を入れろ、と申したか
928デフォルトの名無しさん:2008/12/13(土) 00:52:52
単体で用意されてるだろ
929デフォルトの名無しさん:2008/12/13(土) 00:54:09
ここまでの整理

MSXML利用アプリを素状態のPCで実行させたい場合は
インストーラーを利用してCOMをレジストリに登録させるなくちゃならないってこと?
930デフォルトの名無しさん:2008/12/13(土) 00:55:33
つ regsvr32
931デフォルトの名無しさん:2008/12/13(土) 01:02:02
質問です
CPUがSSE2に対応しているかどうか調べる方法はありますでしょうか?
Win32APIの領域かどうかはわからないのですが・・・
よろしくお願いします
932デフォルトの名無しさん:2008/12/13(土) 01:03:28
>>931
Win32APIの領域ではありません
帰れ
933デフォルトの名無しさん:2008/12/13(土) 01:16:02
>>932
ttp://msdn.microsoft.com/en-us/library/ms724482(VS.85).aspx
へぇ〜。

まあ、使い物になるかどうかはともかくだ。
934デフォルトの名無しさん:2008/12/13(土) 01:20:20
ttp://msdn.microsoft.com/en-us/library/xs6aek1h.aspx
使い物にならんからこういうサンプルを用意してるんだろ
935デフォルトの名無しさん:2008/12/13(土) 01:22:44
ID出ないから釣り放題だな
こんな釣りの何が楽しいのか理解不能だが
936デフォルトの名無しさん:2008/12/13(土) 01:24:59
>>935=馬鹿
937デフォルトの名無しさん:2008/12/13(土) 01:31:58
>>931
CPUID命令でググレ
938デフォルトの名無しさん:2008/12/13(土) 02:55:27
uho

上での話題で、XPにMSXML4のSP2最新バージョンをインストしてアプリ実行
してみたらランタイムエラーになりやがった。
同ディレクトリにmsxml4.dllいれてやったらこんどは問題が発生したためっていうのがでて落ちた

なんじゃこりゃああああ
939デフォルトの名無しさん:2008/12/13(土) 04:10:25
XPで使うなということ
Vistaにしろ
940デフォルトの名無しさん:2008/12/13(土) 04:37:52
>>939

そんなぁ・・・
941デフォルトの名無しさん:2008/12/13(土) 07:47:51
XPを棄てるか、MSXML4を棄てるか
さあ究極の選択肢だ
942デフォルトの名無しさん:2008/12/13(土) 08:05:19
それVista兄さんが頑張ってるだけで糞コードなんじゃねーの?
943デフォルトの名無しさん:2008/12/13(土) 08:47:41
OLE/COM Object Viewerで実際にインスタンス生成できるか試してみたほうがよくね?
944デフォルトの名無しさん:2008/12/13(土) 08:48:57
問題が発生したため〜はCoCreateInstanceに失敗してぬるぽアクセスしてるだけだろ
945デフォルトの名無しさん:2008/12/13(土) 11:00:50
PaintDesktopしたあとCreateCompatibleBitmapしてイメージをブレンド
してコントロールに描画しているのですが、PaintDesktopがVisibleでない
ウィンドウDCやメモリDCには画いてくれないようで、PaintDesktopの一瞬
デスクトップ(つか壁紙)が見えてしまいます
何とかこの過程を表に出さずにやる方法は無いでしょうか
946デフォルトの名無しさん:2008/12/13(土) 11:07:26
日本語でおk
947デフォルトの名無しさん:2008/12/13(土) 11:22:35
ttp://d.hatena.ne.jp/madotate/20080320/1206039767
上にレイヤードウィンドウ重ねて隠す。
948デフォルトの名無しさん:2008/12/13(土) 12:04:08
PaintDesktopってクラス名"Progman"のウィンドウが壁紙を描画するために使ってるAPIだろ
それ以外の用途ではほとんど役に立たんし、なぜこんなのが公開APIなんだろうねぇ
949デフォルトの名無しさん:2008/12/13(土) 12:31:19
ヨーロッパの消費者団体がM$を突き上げたから

独禁法最高
950デフォルトの名無しさん:2008/12/13(土) 13:10:08
PaintDesktopはWin95の頃から公開されてるぞ。
951デフォルトの名無しさん:2008/12/13(土) 16:25:26
Amazon ブルーレイ ベストセラーランキング
http://www.amazon.co.jp/gp/bestsellers/dvd/16378461/

1位 ダークナイト (Blu-ray Disc)
2位 カードキャプターさくら ―クロウカード編― BOX (期間限定生産)(Blu-ray)
3位 カードキャプターさくら ―さくらカード編― BOX (期間限定生産)(Blu-ray)
4位 マクロスF(フロンティア) 5(Blu-ray Disc)
952デフォルトの名無しさん:2008/12/13(土) 22:02:25
カードキャプターさくら BD BOX発売でPS3需要UP
http://dubai.2ch.net/test/read.cgi/ghard/1229071824/
953デフォルトの名無しさん:2008/12/13(土) 23:23:35
質問です
_mbctokata
この関数の引数と戻り値は

strcpy(temp,"あ");
hikisu = temp[0] << 8;
hikisu |= temp[1];
modori = _mbctokana(hikisu);
temp[0] = (0x0000FF00 & modori) >> 8
temp[1] = 0x000000FF & modori;
temp[2] = 0;

な感じでいいんでしょうか?
なぜこんなことを聞くかというと
ビッグエンディアンとかリトルエンディアンとか
中途半端な知識が頭に入っていて不安になった次第であります
954デフォルトの名無しさん:2008/12/13(土) 23:28:57
WindowsAPIの時点でエンディアン固定だろう
955デフォルトの名無しさん:2008/12/13(土) 23:34:14
>>954
ありがとうございます
Itel系とかWindowsって全部リトルエンディアンなんですね
なんか安心しました
956デフォルトの名無しさん:2008/12/13(土) 23:41:19
エンディアンに影響するのはCPUの種類だ
Intel系のみ使ってるのなら心配無用
957デフォルトの名無しさん:2008/12/13(土) 23:43:21
CPUの種類だけどPower系のCPU用WIndowsとか聞いた事ねーし
OSでかんがえt(ry
958デフォルトの名無しさん:2008/12/13(土) 23:49:24
昔はPPC用にNTを出荷していたんじゃなかったか
959デフォルトの名無しさん:2008/12/13(土) 23:51:53
ヘッダを覗くと今でも痕跡は残っている。
typedef struct tagPOINTS
{
#ifndef _MAC
SHORT x;
SHORT y;
#else
SHORT y;
SHORT x;
#endif
} POINTS, *PPOINTS, *LPPOINTS;
960デフォルトの名無しさん:2008/12/14(日) 02:10:47
CreateWindowのクラス名にアトム指定したら例外が発生するんだけど理由分かりますか?
一番目の引数に (LPCTSTR)MAKELONG(atom, 0) と指定してるんだけど
関数が失敗するんじゃなくて例外で落ちるんだよね 何故?
デバッガで追ってみたけどよくわからん
961デフォルトの名無しさん:2008/12/14(日) 05:24:05
>>960
つ MAKEINTATOM
962デフォルトの名無しさん:2008/12/14(日) 09:01:21
>>957
NTと360
963デフォルトの名無しさん:2008/12/14(日) 09:10:04
>>961
ふ〜ん。ネット知識(笑)?
964デフォルトの名無しさん:2008/12/14(日) 09:34:52
>>961
ふ〜ん。ネット知識(笑)?
965デフォルトの名無しさん:2008/12/14(日) 09:56:04
>>961
ふ〜ん。ネット知識(笑)?
966デフォルトの名無しさん:2008/12/14(日) 10:10:43
おもしろいと思ってんの?
967デフォルトの名無しさん:2008/12/14(日) 11:02:49
ストックオブジェクトにNULL_BRUSHってありますが、PS_NULLみたいに指定して創る事ってできないんですか?
968デフォルトの名無しさん:2008/12/14(日) 11:19:45
>>960
x64Vista+VS2008のWin32/64両方で試してみたが、
RegisterClassで返されたATOMをその書き方で渡しても、
普通にウィンドウが表示されたぞ。
WindowProcの中で例外を起こしている可能性は無いか?
ちなみに書き方としては一応 >>961 が正式。
969デフォルトの名無しさん:2008/12/14(日) 11:26:49
(LPCTSTR)MAKELONG(atom, 0)
と書いてるつもりが
(LPCTSTR)MAKELONG(0, atom)
と書いてるとか
970デフォルトの名無しさん:2008/12/14(日) 11:30:39
>>967
つ BS_NULL
971デフォルトの名無しさん:2008/12/14(日) 15:50:32
XBOXってPowerPCじゃなかったか?
972デフォルトの名無しさん:2008/12/14(日) 15:53:53
果たして、XboxはPowerPC用ウィンドウズなのだろうか
973デフォルトの名無しさん:2008/12/14(日) 16:00:49
まーどっちにしろ

PowerPC MIPS Alpha 用のNT4.0があったけどな。
974デフォルトの名無しさん:2008/12/14(日) 16:02:11
PC98も
975デフォルトの名無しさん:2008/12/14(日) 16:06:26
976デフォルトの名無しさん:2008/12/14(日) 16:09:33
>>956
ネットワークエンディアンはビッグエンディアンだけどな
977デフォルトの名無しさん:2008/12/14(日) 16:10:31
>>976
誰もそんな話はしていない
978デフォルトの名無しさん:2008/12/14(日) 16:15:50
exeにはXBOX用フラグがある
979デフォルトの名無しさん:2008/12/14(日) 16:22:06
フラグ(笑)
980デフォルトの名無しさん:2008/12/14(日) 16:26:10
それより誰か次ぎ立てろ
981デフォルトの名無しさん:2008/12/14(日) 16:28:10
>>980
次スレ立てるためのAPIを教えてください
982デフォルトの名無しさん:2008/12/14(日) 16:28:41
>>979
頭悪そうw
983Win32API質問箱 Build74:2008/12/14(日) 16:28:59
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build73
http://pc11.2ch.net/test/read.cgi/tech/1227934931/
984デフォルトの名無しさん:2008/12/14(日) 16:31:20
>>437をテンプレに入れれ
985Win32API質問箱 Build74:2008/12/14(日) 16:38:51
http://pc11.2ch.net/test/read.cgi/tech/1229239827/
次スレ、何か色々とアレだけど。。。

>>983は、み、みすっただけなんだからね!
986デフォルトの名無しさん:2008/12/14(日) 16:43:47
>>985
>>437をそれとなく入れてくれたみたいだなw 乙

まあ、書いた奴にメールで聞けばいいだけなのになぜココで聞きたがるのか分からんが。
987デフォルトの名無しさん:2008/12/14(日) 16:53:38
それじゃあうめうめ。うめうめ、うめうめ、うめ、うめ? うめうめ。
うめぇ
うめ!
988デフォルトの名無しさん:2008/12/14(日) 16:54:57


>下記サイトは、違っている事もあるので参考程度にしよう!
>...
>- Advanced Windows 第5版(書籍)
>http://www.amazon.co.jp/dp/4891005920

不覚にもわろた でもまあとりあえず乙
989Win32API質問箱 Build74:2008/12/14(日) 16:55:37
M$の本でも時々ミスあるからいいんじゃね?w
990デフォルトの名無しさん:2008/12/14(日) 16:55:44
>>988
下記サイト=amazonだろ
991デフォルトの名無しさん:2008/12/14(日) 16:57:24
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ
うめうめうめうめうめうめうめうめうめうめ

992デフォルトの名無しさん:2008/12/14(日) 17:04:21
埋めるなくずしね
993デフォルトの名無しさん:2008/12/14(日) 17:07:47
次スレあるっぽいからいいんじゃね?
http://pc11.2ch.net/test/read.cgi/tech/1229239827/
994デフォルトの名無しさん:2008/12/14(日) 17:09:49
埋める、泣く逗子ね

と言っただけですが何か?
995デフォルトの名無しさん:2008/12/14(日) 17:11:16
Ume
996デフォルトの名無しさん:2008/12/14(日) 17:11:54
うメ
997デフォルトの名無しさん:2008/12/14(日) 17:14:16
Win64API になるのはいつですか?
998デフォルトの名無しさん:2008/12/14(日) 17:15:11
もうなってるだろ
999デフォルトの名無しさん:2008/12/14(日) 17:15:19
おっぱいと梅
1000デフォルトの名無しさん:2008/12/14(日) 17:16:26
生め
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。