Win32API質問箱 Build73at TECH
Win32API質問箱 Build73 - 暇つぶし2ch1:デフォルトの名無しさん
08/11/29 14:02:11
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

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

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

- Win32API質問箱 wiki
URLリンク(wiki.livedoor.jp)

Win32API質問箱 Build72
スレリンク(tech板)

2:デフォルトの名無しさん
08/11/29 14:02:56
- MSDN ホームページ
URLリンク(www.microsoft.com)
- MSDN ライブラリ
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
- MSDN2 ライブラリ
URLリンク(msdn2.microsoft.com)
URLリンク(msdn2.microsoft.com)
- MSDN ライブラリ (ローカル版)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
- Windows SDK & Platform SDK
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)
URLリンク(www.microsoft.com)

3:デフォルトの名無しさん
08/11/29 14:04:20


- Google
URLリンク(www.google.com)
- 猫でもわかるプログラミング
URLリンク(www.kumei.ne.jp)
- Win32 API入門
URLリンク(wisdom.sakura.ne.jp)
- Win32 プログラミング入門
URLリンク(www7.plala.or.jp)

- Advanced Windows 第5版(書籍)
URLリンク(www.amazon.co.jp)

4:デフォルトの名無しさん
08/11/29 14:04:51
過去ログ
72 スレリンク(tech板)
71 スレリンク(tech板)
70 スレリンク(tech板)
69 スレリンク(tech板)
68 スレリンク(tech板)
67 スレリンク(tech板)
66 スレリンク(tech板)
65 スレリンク(tech板)
64 スレリンク(tech板)
63 スレリンク(tech板)
62 スレリンク(tech板)
61 スレリンク(tech板)
60 スレリンク(tech板)
59 スレリンク(tech板)
58 スレリンク(tech板)
57 スレリンク(tech板)
56 スレリンク(tech板)
55 スレリンク(tech板)
54 スレリンク(tech板)
53 スレリンク(tech板)
52 スレリンク(tech板)
51 スレリンク(tech板)

5:デフォルトの名無しさん
08/11/29 14:05:02
50 スレリンク(tech板)
49 スレリンク(tech板)
48 スレリンク(tech板)
47 スレリンク(tech板)
46 スレリンク(tech板)
45 スレリンク(tech板)
44 スレリンク(tech板)
43 スレリンク(tech板)
42 スレリンク(tech板)
41 スレリンク(tech板)
40 スレリンク(tech板)
39 スレリンク(tech板)
38 スレリンク(tech板)
37 スレリンク(tech板)
36 スレリンク(tech板)
35 スレリンク(tech板)
34 スレリンク(tech板)
33 スレリンク(tech板)
32 スレリンク(tech板)
31 スレリンク(tech板)
30 スレリンク(tech板)
29 スレリンク(tech板)
28 スレリンク(tech板)
27 スレリンク(tech板)
26 スレリンク(tech板)

6:デフォルトの名無しさん
08/11/29 14:05:15
25 スレリンク(tech板)
24 スレリンク(tech板)
23 スレリンク(tech板)
22 スレリンク(tech板)
21 スレリンク(tech板)
20 スレリンク(tech板)
19 スレリンク(tech板)
18 スレリンク(tech板)
17 スレリンク(tech板)
16 スレリンク(tech板)
15 スレリンク(tech板)
14 URLリンク(pc5.2ch.net)
13 URLリンク(pc5.2ch.net)
12 URLリンク(pc5.2ch.net)
11 URLリンク(pc5.2ch.net)
10 URLリンク(pc5.2ch.net)
9 URLリンク(pc5.2ch.net)
8 URLリンク(pc5.2ch.net)
7 URLリンク(pc3.2ch.net)
6 URLリンク(pc3.2ch.net)
5 URLリンク(pc3.2ch.net)
4 URLリンク(pc3.2ch.net)
3 URLリンク(pc.2ch.net)
2 URLリンク(pc.2ch.net)
1 URLリンク(pc.2ch.net)

7:デフォルトの名無しさん
08/11/29 14:06:56
・MSDNライブラリのリンクを新しいのにした
・AdvancedWindowsのリンクを5版にした
・MSDN2ライブラリのリンクを消し忘れた

以上

8:デフォルトの名無しさん
08/11/29 14:09:34
ReadFile関数の読み込みバッファにwchar_t型のバッファを渡したのですが、
文字列が格納出来ていない原因がわかりません
char型のバッファだとうまくいくのですが

9:デフォルトの名無しさん
08/11/29 14:10:26
BOMつけろ馬鹿

10:デフォルトの名無しさん
08/11/29 14:11:01
>>8
入力がwcharじゃないからでしょうよそりゃ


            , ;,勹
           ノノ   `'ミ
          / y ,,,,,  ,,, ミ
         / 彡 `゚   ゚' l
         〃 彡  "二二つ
         |  彡   ~~~~ミ
     ,-‐― |ll  川| ll || ll|ミ―-、
   /     |ll        |   ヽ
  /       z W`丶ノW     ヽ
 /        \\   / /      |
/    天      \`i / /  狗   |

11:デフォルトの名無しさん
08/11/29 14:15:04

         *、 *、      。*゚    *-+。・+。-*。+。*
        / ゚+、 ゚+、   *゚ ・゚    \       。*゚
       ∩    *。  *。    +゚    ∩    *
   (´・ω・`)      +。   +。   ゚*     (´・ω・`)
   と   ノ      *゚  *゚    ・     。ヽ、  つ
    と、ノ     ・゚  ・゚     +゚    *  ヽ、 ⊃
     ~∪    *゚  *゚      *    +゚    ∪~   ☆
          +′ +′      +゚   ゚+。*。・+。-*。+。*゚

12:デフォルトの名無しさん
08/11/29 14:25:57
予めウィンドウのハンドルなどを適当な変数に代入しておいて、
ウィンドウプロシージャ内などで、引数として与えられるハンドルではなく、予め代入しておいたハンドルを使用することは、何か問題あるのでしょうか。


13:デフォルトの名無しさん
08/11/29 14:37:56
>>12
まったく問題ないよ。でも WM_CREATEは、作成完了前に送られるから、プロシージャの仮引数を使わないといけないね。

14:デフォルトの名無しさん
08/11/29 14:38:34
>>13
ありがとうございます。分かりました。

15:デフォルトの名無しさん
08/11/29 14:53:08
これ思い出した
URLリンク(www.hsjp.net)

16:デフォルトの名無しさん
08/11/29 14:54:06
>12
同じウィンドウクラスに属するウィンドウを複数作るのが面倒になるけどね。

17:デフォルトの名無しさん
08/11/29 14:55:56
>>15
どこの誤爆だよw
そしてどういう状況だよw

18:デフォルトの名無しさん
08/11/29 14:57:30
Windowをクラスでラップすればいいんじゃね?www
俺天才wwwwww

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

SetWindowLongを呼んだら64bitがどうのと警告がでます

19:デフォルトの名無しさん
08/11/29 15:13:57
>>18
SetWindowLongPtrだろ。
こっち使って64ビットの警告が出るのはバグみたいなもんだから、
64ビットで動けば無視していい。あるいはATLみたいな対策するのもありだ。

20:デフォルトの名無しさん
08/11/29 15:28:08
MenuHelp使うと、ステータスバーが平面になるのは仕様?

21:デフォルトの名無しさん
08/11/29 18:28:33
>>15
Hello Kitty guy!

22:デフォルトの名無しさん
08/11/29 19:07:52
まあ俺も、みずほの通帳とカードはキティなんだけどな。

23:デフォルトの名無しさん
08/11/29 19:53:11
自分のこと俺って呼ぶ女の子ですね。分かります。そういうの嫌いじゃありません

24:デフォルトの名無しさん
08/11/29 20:55:39
※ わざと誤爆したり.NETマンセーして荒らす基地外が粘着中です ※

25:デフォルトの名無しさん
08/11/29 21:21:54
嫌いじゃないどころか燃えるのですが、私って変ですか?

26:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/29 22:24:35
GetLastError

28:デフォルトの名無しさん
08/11/29 22:27:52
87

29:デフォルトの名無しさん
08/11/29 22:31:36
>>27
わかりました。調べてみます。

30:デフォルトの名無しさん
08/11/29 22:46:04
>>27>>28
はい、その通りエラーコード87でした。
つまり ERROR_INVALID_PARAMETER って事ですか・・・

ちなみにAlphaBlend()を通さずに直接描画するとちゃんと
グラデーションがかかった256×256の画像が表示されるのですが、
どこがIvvalid Parameterなのやらさっぱり。

31:デフォルトの名無しさん
08/11/29 23:02:42
INVALID_PARAMETERって言われてるなら渡してるハンドルが変なんじゃないの
OWLだっけ?じゃなくて普通に作ったHDC渡して試すとか

32:デフォルトの名無しさん
08/11/29 23:06:03
VCLですが、HandleプロパティがVCL内部に保持している
オブジェクトのHDCを取り出します。
BCBのヘルプを見ても、Handleで取り出したHDCでWin32を
呼び出しているプログラム例が載っていました。

でも実際に呼び出しが失敗しているわけですから、もうHandleが
おかしいとしか考えられませんね。普通にHDC作ってやってみます。

33:デフォルトの名無しさん
08/11/29 23:08:46
URLリンク(www.geocities.jp)

例えばこれですが、Delphiなんですけどちゃんと動くんですよね。
ここを参考にBCBに移植したら動かなくなったので、移植が失敗
しているのかもしれません。

34:デフォルトの名無しさん
08/11/29 23:25:26
NescafeGoldBlend()

35:デフォルトの名無しさん
08/11/29 23:37:02
お騒がせしました。
×bt->Handle, 0, 0, bt->Width, bt->Height,
○bt->Canvas->Handle, 0, 0, bt->Width, bt->Height,

私のケアレスミスでした。無事動きました。

36:デフォルトの名無しさん
08/11/29 23:38:46
NescafeGoldBlendの大瓶500円で買ってきますた

37:デフォルトの名無しさん
08/11/29 23:57:47
職場で飲むのかえ?

38:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/11/30 02:13:36
うそん

40:デフォルトの名無しさん
08/11/30 02:15:24
>>38
SrcとAlphaの対応は固定だから事前に計算しておけば計算量が減るだろ?

41:デフォルトの名無しさん
08/11/30 02:22:38
>>38
もっとちゃんとヘルプ見た方がいいぞ。

42:デフォルトの名無しさん
08/11/30 03:16:14
>>40
違う

AC_SRC_ALPHAを指定するとSrc/Destは合成する画像のそれぞれのピクセルだから
ピクセルごとにRed/Green/Blue/Alphaの値は違う

43:デフォルトの名無しさん
08/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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch