Win32API質問箱 Build44

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/08/18(金) 10:30:15
>>951
「コールバックとか登録」って何?
あと <iostream.h> <fstream.h> は古いからやめなさい。
<iostream> <fstream>を使え。
953デフォルトの名無しさん:2006/08/18(金) 10:43:39
WNDCLASSEXとか
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
とかです、よく考えるとあれはシステムに詠んで貰うためだから、
コンソールみたいな上から下に向かって順序良く進む場合はいらないんですか?

もし
#include <windows.h>
#include <iostream>
#include <fstream>
とした場合下のようなのが出て
error C2065: 'ifstream' : 定義されていない識別子です。c:\win32\win32\main.cpp 13

#include <windows.h>
#include <iostream>
#include <fstream.h>
とおくと
fstream.hは開けませんと出て

STLportで
#include <windows.h>
#include <iostream>
#include <fstream>
とおくと、下のように出て
error C2065: 'ifstream' : 定義されていない識別子です。c:\win32\win32\main.cpp

#include <windows.h>
#include <iostream>
#include <fstream.h>
とおくと、コンパイルできるんですorz設定を間違ってるのかな・・・
954デフォルトの名無しさん:2006/08/18(金) 10:46:37
>>951
WinMainなプログラムでウィンドウを開かず、必要な処理だけしてすぐに終了しても構わんし、
逆にmainなプログラムでウィンドウを開いてもよい。
955デフォルトの名無しさん:2006/08/18(金) 10:48:44
>>953
「namespace」でぐぐれ
956947:2006/08/18(金) 10:52:38
>>949
まぢですか。
とりあえず、GetMessageのブロッキングが解除されてほしいのですが…。
WM_QUERYENDSESSION後だとなにやってもメインループのGetMessageが制御を返してくれません…。
957デフォルトの名無しさん:2006/08/18(金) 10:54:29
>>955
あ・・・・・・そういえばそんなのがありましたね、忘れてました。
958947:2006/08/18(金) 11:20:30
あっ、ごめんなさい。
なんか勘違いしてたかも。

質問は無視しちゃってください。
959950:2006/08/18(金) 11:44:34
No Integral HeightのプロパティがFALSEになってたよいつの間にか!
あほか!
960デフォルトの名無しさん:2006/08/18(金) 16:43:51
タブコントロールのタブがある行の余白の部分だけ(AA参照)を、標準色とは違う色で
描画したい(最終目的は親ダイアログに貼られているビットマップを
透過しているように見せかける)。


┌────┐──────┐
│  タブ1  │  タブ2     │ここの余白の色を変えたい
│       └──────┴───────────┐


調べた限りでは、オーナードローをするしかないのかな?と思うんだけど、
オーナードローだと、タブの部分もちまちま描くのがマンドクセだし、さらに
XPのVisual Styleにも対応しなきゃいけないので、さらにマンドクセ('A`)('A`)

他に簡単にできる方法があれば教えてください。
961デフォルトの名無しさん:2006/08/18(金) 17:05:18
マスク処理したグループボックスの上にでものせてお茶を濁すのが吉
962デフォルトの名無しさん:2006/08/18(金) 19:26:03
>>961
早速作ってみたです。
バッチリです。これなら普通の人にはバレないくらいにちゃんとできてるです。
ありがとうございました。

やっぱPGに一番必要なのは、関数を覚えることよりもやわらかアタマだねぇ。
と毎度のことながら痛感させられました。
963デフォルトの名無しさん:2006/08/18(金) 19:49:04
>>961, 962
目からうろこ。詳しくお願いします。
964デフォルトの名無しさん:2006/08/19(土) 01:45:44
API でネットワーク接続の有効/無効を切り替える方法を調べているんですが、
どの API を使えば良いのでしょうか。

Vista であれば WMI を使って切り替えられるのは分かったのですが、2000/2003/XP
では WMI を使って切り替えることは出来ないようで。
965デフォルトの名無しさん:2006/08/19(土) 02:39:36
>>964
netshじゃ駄目かのう
966デフォルトの名無しさん:2006/08/19(土) 02:51:56
>>965
どもです。
netsh の dump/exec を使ってみましたが、ネットワーク接続の有効/無効を
切り替えることは出来ないようです。
967デフォルトの名無しさん:2006/08/19(土) 05:25:38
>>961-962
すまん、オレも知りたい。

WM_PAINT の時に子コントロールの画像をマスクするわけか?
というか、タブの形をどうやって知ったんだ?
968デフォルトの名無しさん:2006/08/19(土) 08:18:27
>>968
リージョンですかね・・・
予想まきこ
969デフォルトの名無しさん:2006/08/19(土) 11:04:45
ハンドルを返す関数が失敗してNULLを返した時は、
DleteObject() で開放しなくてもいいんですよね
970デフォルトの名無しさん:2006/08/19(土) 11:28:08
最後のタブの隣に適当なコントロールを置いて、
そいつにDrawItemでタブの下に隠れた背景を描画するようにしたらどうだろう?

いずれにせよ>>961-962の解答待ちw
971デフォルトの名無しさん:2006/08/19(土) 11:43:47
複数のコンボボックスがあってある特定のコンボボックスの選択項目が
変更された時のみ更新をかけるっていう事やりたいんですけど単純に

if(HIWORD(wParam) == CBN_SELCHANGE)
処理;

とかでやるとすべてのコンボボックスが対象になってしまうと思うんですけど
これを回避するにはどうすればいいんでしょうか?
972971:2006/08/19(土) 11:57:57
デバッグで見たところlParamが変わってたからそれどうにかすればいいのかな
973971:2006/08/19(土) 12:02:32
lParamとコントロールのハンドル比較でできました。

if(HIWORD(wParam) == CBN_SELCHANGE && lParam == HWND)
処理;

ちなみにこの場合、HIWORDとLOWORDに分けなくていいんでしょうか?
974デフォルトの名無しさん:2006/08/19(土) 12:18:52
>>971-973
http://windowssdk.msdn.microsoft.com/en-us/library/ms647591.aspx
WM_COMMANDを受け取ったときのlParamにはコントロールのハンドルが入っていることになっている。

ところでよくキャスト無しでLPARAM型とHWND型の値を比較できるな。
975971:2006/08/19(土) 12:53:55
>>ところでよくキャスト無しでLPARAM型とHWND型の値を比較できるな。
すいません(´・ω・`)
976デフォルトの名無しさん:2006/08/19(土) 14:38:45
>>969
何も得られてないのに、何を解放しようというのだ。
977デフォルトの名無しさん:2006/08/20(日) 04:00:39
例えば、デスクトップからごみ箱を開くと、
ファイル名を指定して個別にファイルを完全削除が行えますが、
GUI を使わずに、ごみ箱内のファイルリストを得たり、
ごみ箱ないのファイルに操作を行なうには、どうしたら良いのでしょうか?
SHEmptyRecycleBin と SHQueryRecycleBin では期待していることができなさそうです。
978デフォルトの名無しさん:2006/08/20(日) 04:07:32
ルートにRECYCLERってSystem, Hiddenフォルダがあるから
そん中を思う存分漁るといい
979977:2006/08/20(日) 05:30:16
>>978
ありがとうございます。
あまり、Win32 API に頼らなくて良かったのですね。
あとは、下記の情報でなんとかできそうです。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;136517

INFO2 が解析できないとダメっぽいですが orz
980デフォルトの名無しさん:2006/08/20(日) 06:09:12
ちゃんとやりたいならシェルネームスペース周りから攻めた方が良い
981977:2006/08/20(日) 07:22:21
>>980
どうもです。
検索してみたんですが、使い方に関する情報が無いですね...
982デフォルトの名無しさん:2006/08/20(日) 08:10:13
>>981
たしかに、シェル回りことで日本語の情報は少ないよ。
983デフォルトの名無しさん:2006/08/20(日) 08:19:27
IShellFolder とか PIDL でググれば結構出てくる
984デフォルトの名無しさん:2006/08/20(日) 08:20:04
ageちったゴメn
985デフォルトの名無しさん:2006/08/20(日) 09:22:42
次スレ
Win32API質問箱 Build45
http://pc8.2ch.net/test/read.cgi/tech/1156032806/l50
986デフォルトの名無しさん:2006/08/20(日) 18:02:20
質問があるのですが

int _tmain(int argc, _TCHAR* argv[])
{
::MessageBox(NULL, "aaa", "bbb", MB_OK);
return 0;
}

このプログラムをビルドすると

error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [4]' to 'LPCWSTR'

というエラーが出るのですが、そんな事はどうでも良くて
埋め
987デフォルトの名無しさん:2006/08/20(日) 18:10:43
確かに、そんなFAQどうでもいいわな。
988デフォルトの名無しさん:2006/08/20(日) 20:13:02
UNICOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOODE
989デフォルトの名無しさん:2006/08/20(日) 20:18:18
UNCODE
990デフォルトの名無しさん:2006/08/20(日) 20:21:06

VERY COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL!
991デフォルトの名無しさん:2006/08/20(日) 21:39:52
うにこぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉぉど
992デフォルトの名無しさん:2006/08/20(日) 21:44:30
うにもぐ、て車あったね
993デフォルトの名無しさん:2006/08/20(日) 23:34:21
うにっくす
994デフォルトの名無しさん:2006/08/21(月) 00:04:59
梅子
995デフォルトの名無しさん:2006/08/21(月) 05:19:37
梅方梅朗
996デフォルトの名無しさん:2006/08/21(月) 08:49:12
996
997デフォルトの名無しさん:2006/08/21(月) 08:50:07
オーナー描画ボタンにbmp貼り付けることは出来ますか?
998デフォルトの名無しさん:2006/08/21(月) 08:55:07
出来ません
999デフォルトの名無しさん:2006/08/21(月) 08:57:47
マジすか orz
な、なら何かのボタンにbmp貼り付けは…?

それも出来ないとしたら、ボタンぽいのを自分で書くしかないんですかね
1000デフォルトの名無しさん:2006/08/21(月) 08:58:45
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。