■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build32
251 名前:249 :2005/06/06(月) 13:40:41
>>250
ありがとう!的中しました。
いや〜ChoseFontは知ってたんだが、
Colorバージョンもあったなんて
目から鱗のクラッカー

愛してるよ

252 名前:デフォルトの名無しさん :2005/06/06(月) 14:48:30
>>248
2000 で起きなくて XP で送るなら、漏れなら manifest を疑う。

253 名前:デフォルトの名無しさん :2005/06/06(月) 16:46:24
VC++6.0 を携えて出てくる初心者が後を絶たないんだが、
どうして新参者が6.0を持ってるんだろう?
それも決まって6.0だ。5.0じゃない。
どうなっているのか?

254 名前:デフォルトの名無しさん :2005/06/06(月) 16:49:43
.NETを購入していない大学or会社でピコったに100ガバス

255 名前:デフォルトの名無しさん :2005/06/06(月) 17:03:46
新参者がVS6.0持ってちゃあかんのか?

256 名前:デフォルトの名無しさん :2005/06/06(月) 17:12:16
確かに253の疑問はもっともだが、どうせ割れなら最新のを使わない手はない気もするしなぁ。
俺もそろそろIDE買い換えたいなぁ…。最近のは関数毎にテキストを畳めるらしいな…。

257 名前:デフォルトの名無しさん :2005/06/06(月) 17:19:33
VC7以降のIDEは、常時使用するにはモッサリしすぎな気がするが。
デバッガは我慢して使ってるが、
それ以外はコマンドライン+makefileに逆戻りしたよおかげさまで。


258 名前:デフォルトの名無しさん :2005/06/06(月) 17:23:43
>>253
2003に移行した人から貰ったんじゃないの?

259 名前:デフォルトの名無しさん :2005/06/06(月) 17:25:05
>>255
新参者なら最近開発環境購入したはずなのだからVC++6.0であるはずがない、
ということでしょ。

>>257
確かにVC++6.0やVB6.0あたりとは軽さが圧倒的に違うね。
でも、インテリセンスつきのエディタとデバッガはやはり欲しいから、IDEから離れられない。

260 名前:デフォルトの名無しさん :2005/06/06(月) 17:44:02
>>257
( ・∀・)人(・∀・ )ナカーマ

261 名前:デフォルトの名無しさん :2005/06/06(月) 17:44:29
上げてしまった...orzスマソ

262 名前:デフォルトの名無しさん :2005/06/06(月) 17:44:29
>>259
プログラマとして新参者でも、最近開発環境購入したとは限らんだろう

263 名前:デフォルトの名無しさん :2005/06/06(月) 18:04:44
貧乏会社に就職したばかりの新人プログラマとかなー


264 名前:デフォルトの名無しさん :2005/06/06(月) 18:15:01
こんばんわ

質問ですが
リストビュー(リストコントロール)に挿入されてるカラムの数を取得したいのですが、
そのAPIを教えていただけないでしょうか。

アイテムを取得するAPIはわかったのですが、どうしてもカラムの数がわかりません。

265 名前:デフォルトの名無しさん :2005/06/06(月) 18:47:29
GDIの座標の変換のところで
三角関数とか行列とかでてきた。

図形の回転。。。XFORM構造体。。。
やはりこれは高校の教科書なの、だろう。

266 名前:239 :2005/06/06(月) 19:14:50
>>252
manifestって、XPスタイルにするための.manifestファイルのことでいいんですよね?
とりあえず、次の2つを試してみました。
・設定をクラシックスタイルに変更して実行
・.exeファイルのリソースにmanifestを埋め込んで実行
やっぱりどちらもスレッド作成時にFDをアクセスしに行きます…もうだめぽ

267 名前:デフォルトの名無しさん :2005/06/06(月) 19:26:11
>>264
ヘッダーコントロールに対して HDM_GETITEMCOUNT とか Header_GetItemCount() とか

268 名前:デフォルトの名無しさん :2005/06/06(月) 20:56:47
>>248
一時的にハードディスクにコピーして実行するのが簡単だと思うよ

269 名前:239 :2005/06/06(月) 22:20:26
>>268
そうですね…確かに現時点ではそれが最も手っ取り早い解決方法かもしれません。
まあ、そもそもいまどきFDから起動するという状況自体がレアケースなので、
無視してもどうということはないのですが…あまり気持ちのいいものではないですよね。

270 名前:デフォルトの名無しさん :2005/06/06(月) 22:44:57
漏れはVS.NET 2002を買ってMSDNで送られてきたVC6を愛用してるよ。
大したことをやっていない、というのもあるけどね。

ちなみに会社では今だにVC4.2

271 名前:デフォルトの名無しさん :2005/06/06(月) 23:12:05
ダイアログボックスを使用したプログラムを組んだんですがウィンドウとは
別でダイアログでもうひとるウィンドウみたいなのができますよね。
これをウィンドウとあわせたりできますか?

272 名前:デフォルトの名無しさん :2005/06/06(月) 23:16:58
うひとるウィンドウ
ってなんだ?

273 名前:デフォルトの名無しさん :2005/06/06(月) 23:19:53
RegOpenKeyExでKEY_ALL_ACCESSで開いているのに
RegEnumValueでキー名がFilterClassesとか出て値が得られないんだけど、
これらを得る方法はありますか?

例えば
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network
以下にあるキーとか。

274 名前:デフォルトの名無しさん :2005/06/06(月) 23:25:09
#include <windows.h>

/* 島津印のマーカーを、出す */
void Marker(LONG x, LONG y, HWND hwnd)
{
HDChdc;

hdc = GetDC(hwnd);
MoveToEx(hdc, (int)x - 10, (int)y, (LPPOINT)NULL);
LineTo(hdc, (int)x + 10, (int)y, (LPPOINT)NULL);
MoveToEx(hdc, (int)x, (int)y - 10, (LPPOINT)NULL);
LineTo(hdc, (int)x, (int)y + 10, (LPPOINT)NULL);
ReleaseDC(hwnd, hdc);
}

LRESULT CALLBACK MainWndProc(HWND hwnd,
UINT messge,
WPARAM wParam,
LPARAM lParam)
{
/* FIXME: もうねる */


275 名前:デフォルトの名無しさん :2005/06/06(月) 23:42:48
>>270
漏れは古いソースをコンパイルするときはそのとき使っていたものをずっと使ってる
新しいのでコンパイルし直すだけで古い環境では動作しなくなるらしいから

276 名前:デフォルトの名無しさん :2005/06/06(月) 23:49:16
>>273
>HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network
>以下にあるキーとか。
サブキーを列挙したいのなら RegEnumKeyEx な。
RegEnumValue はエントリ(値)の列挙。

277 名前:デフォルトの名無しさん :2005/06/07(火) 00:50:04
>>273
方法を問わなければ、WSHで列挙してテキストファイルに写すってのはどうよ?
たしか、WSHなら制限無く値を得れるはず。(RegEnumValueで制限あるなんて知らなかったが)
指定の値を取れる記述をしたvbsをShellExecuteで呼び出してとかね。

>>276
値が得られないって言ってるんだから、RegEnumValueでいいだろう。
以下のキーの値が得られないって言ってるんだと思う

278 名前:デフォルトの名無しさん :2005/06/07(火) 02:28:19
WindowsXPやWindows2000でパスを追加したいのですが、環境変数を操作する方法を教えてください。

279 名前:デフォルトの名無しさん :2005/06/07(火) 02:51:00
>>278
Get/SetEnvironmentVariable APIがあるけどシステム環境変数は無理っぽいから
レジストリを操作するしかないとおもふ

280 名前:デフォルトの名無しさん :2005/06/07(火) 12:10:05
GetAsyncKeyState()の引数にVK_Aと書いたら
'VK_A' : 定義されていない識別子です。
というエラーになってしまいます。
VK_LEFTやVK_UPなどは大丈夫です。
何故でしょうか?

281 名前:デフォルトの名無しさん :2005/06/07(火) 12:13:42
定義されていないからだよ。

282 名前:280 :2005/06/07(火) 12:33:05
でも仮想キーコードの表などにはVK_Aが載ってるから使えると思ったんですけど、
どうしたら使えるようになるんでしょうか?

283 名前:デフォルトの名無しさん :2005/06/07(火) 12:39:34
>>282
どうしても、その記述が使いたければ自分で定義するしかないんじゃない?

漏れのwinuser.hにはコメントで↓のように書いてあるし
VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)
VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)

284 名前:デフォルトの名無しさん :2005/06/07(火) 12:54:22
ありがとうございました。
単に'A'と書いたら大丈夫だったんで、これでいきます。

285 名前:デフォルトの名無しさん :2005/06/07(火) 12:56:35
質問させてください。
マウスフック(グローバルフック)を使いたいのですが、うまくいきません。
1回のクリックにつき10回くらい呼び出されてしまいます。
何か対処方法はありますか?
現在下記のようなコードで試しています。

//フックするプロシージャ
LRESULT __stdcall CallWndProc(int nCode,WPARAM wParam,LPARAM lParam) {
  if (nCode == HC_ACTION) {
    if (wParam == WM_RBUTTONUP) {
      //処理
    }
  }
  return CallNextHookEx(g_hHookWnd, nCode, wParam, lParam);
}

286 名前:デフォルトの名無しさん :2005/06/07(火) 16:01:04
一度はずしたUSB機器(特にUSBメモリ)を
つかみ直す方法を教えてください
# プログラミングで


287 名前:デフォルトの名無しさん :2005/06/07(火) 16:03:57
ExitWindowsExでEWX_REBOOT

288 名前:286 :2005/06/07(火) 16:08:24
「デヴァイスマネージャ」の
「USBルートハブ」を無効にして
再度,有効にするとUSB機器が再度認識されます
# USB を物理的にはずすことなく

これをプログラミングでやりたいんです

289 名前:デフォルトの名無しさん :2005/06/07(火) 16:40:07
deviceをデヴァイスなんて気持ち悪い読み方するなら、
managerもマネイジャと読めよ。

んで、使ったことないけどMSDNのDevice Managementあたりを
みりゃいいんじゃないか?

290 名前:デフォルトの名無しさん :2005/06/07(火) 16:47:22
ヴァイブ

291 名前:デフォルトの名無しさん :2005/06/07(火) 16:51:30
ヴァイヴ

292 名前:デフォルトの名無しさん :2005/06/07(火) 16:53:25
ゔぁいゔ

293 名前:デフォルトの名無しさん :2005/06/07(火) 17:03:34
ジャグァ

294 名前:デフォルトの名無しさん :2005/06/07(火) 17:05:44
>>280=282
「ちゃんと定義してある」のか「ただファイル内にそういう文字列があるだけ」なのかが判らんようじゃアプリ開発など夢のまた夢じゃ

295 名前:デフォルトの名無しさん :2005/06/07(火) 17:09:34
OpenMutexって重いですか軽いですか?

全てのトップレベルウィンドウのHWNDにちなんだ文字列の
Mutexを順々に検索してヒットしたHWNDに対してメッセージを
投げるという処理をしたいんですが。

296 名前:デフォルトの名無しさん :2005/06/07(火) 17:21:23
>>288
なんとなくマジレスしたくないけど、マジレスすると

SetupDiGetClassDevs
SetupDiSetClassInstallParamsでDICS_PROPCHANGE
SetupDiChangeState

でいけるハズ

297 名前:デフォルトの名無しさん :2005/06/07(火) 17:31:44
>>295
関数がわかってるならやってみりゃいいだろ
そんな自分で計測すりゃわかるようなことを聞きに来るな

298 名前:デフォルトの名無しさん :2005/06/07(火) 17:39:34
相手にしてもらえると喜ぶからスルー汁 >297

299 名前:デフォルトの名無しさん :2005/06/07(火) 17:53:29
>>295
あくまでも一般論としてだけど、Open〜は反復呼び出しを
想定されているので*比較的*軽いと言える。


>>297,298
分かんないんなら無理して反応すんなよ。
この板は答えられない質問を見かけると、ムキになって
否定して掛かるのがときどきいるな。

300 名前:デフォルトの名無しさん :2005/06/07(火) 18:04:18
と、やっと自分が答えられる質問が来てちょっと得意げなヒキデブでした。

301 名前:デフォルトの名無しさん :2005/06/07(火) 18:17:57
>>300
  ↑ コイツは >>297-298 にちがいない^^

302 名前:デフォルトの名無しさん :2005/06/07(火) 18:19:37
>>301
  ↑ コイツは>>299に違いない(^ω^)

303 名前:デフォルトの名無しさん :2005/06/07(火) 18:22:17
ヴァイブレイシャン

304 名前:デフォルトの名無しさん :2005/06/07(火) 18:25:41
盛り上がってまいりました(゜∀゜)ノ

305 名前:デフォルトの名無しさん :2005/06/07(火) 18:35:01
そして盛り下がってまいりました(゜д゜)

306 名前:デフォルトの名無しさん :2005/06/07(火) 18:38:01
急速にスレェァドゥのクァリティが低下してまいりましたフォー

307 名前:デフォルトの名無しさん :2005/06/07(火) 18:55:24
だれもムキになってないと思うけど
面白がってるだけだからフォー

308 名前:デフォルトの名無しさん :2005/06/07(火) 19:27:13
ゲイは帰れフォー

309 名前:デフォルトの名無しさん :2005/06/07(火) 19:29:46
何この流れフォー

310 名前:295 :2005/06/07(火) 19:30:45
>>299
ありがとうございました。

311 名前:デフォルトの名無しさん :2005/06/07(火) 19:58:59
    〃                 i,        ,. -‐
   r'   ィ=ゝー-、-、、r=‐ヮォ.〈    /
    !  :l      ,リ|}    |. }   /   .や
.   {.   |          ′    | }    l
    レ-、{∠ニ'==ァ   、==ニゞ<    |    ら
    !∩|.}. '"旬゙`   ./''旬 ` f^|    |
   l(( ゙′` ̄'"   f::` ̄  |l.|   |     な
.    ヽ.ヽ        {:.    lリ     |
.    }.iーi       ^ r'    ,'    ノ    い
     !| ヽ.   ー===-   /    ⌒ヽ
.   /}   \    ー‐   ,イ       l    か
 __/ ‖  .  ヽ、_!__/:::|\       ヽ

312 名前:デフォルトの名無しさん :2005/06/07(火) 20:53:56
だが断る!

313 名前:デフォルトの名無しさん :2005/06/07(火) 20:59:03
ヮォ

314 名前:デフォルトの名無しさん :2005/06/07(火) 23:36:48
>285
「処理」の中で MessageBox() とか呼んでない?

315 名前:デフォルトの名無しさん :2005/06/08(水) 00:15:26
>>285
nCode < 0 ならCallNextHookExだってばよ
んで改善されないならハンドルみて確認しろや グローバルなんだべ?

316 名前:285 :2005/06/08(水) 01:18:16
>314
>「処理」の中で MessageBox() とか呼んでない?
あ、呼んでます。フックできてるか確認するために、
とりあえずMessageBox()で確認しているので。
このせいですかね?他の方法で確認してみます。

317 名前:デフォルトの名無しさん :2005/06/08(水) 01:27:24
OpenPrinter をする際に、ネットワークプリンタの場合は文字数が30文字を超えてしまって
オープンエラーになってしました(GetLastErr では、1801 プリンタ名がおかしい)

長い名前のネットワークプリンタの場合の OpenPrinter はどうやるのでしょうか?

318 名前:にゃこ :2005/06/08(水) 02:57:24
質問させて頂きます

WindowsMediaPlayerのように歪んだウインドウをつくるには
どのようにすればよいのでしょうか

319 名前:デフォルトの名無しさん :2005/06/08(水) 03:30:35
検索キーワード「ウィンドウリージョン」または「レイヤードウィンドウ」

ウィンドウリージョンの方が難易度は低いと思う。


320 名前:デフォルトの名無しさん :2005/06/08(水) 03:31:08
>>318
たしかSetWindowRgn

321 名前:にゃこ :2005/06/08(水) 03:48:05
319さん、320さん ありがとうございます。がんばってみます。

322 名前:デフォルトの名無しさん :2005/06/08(水) 04:33:04
そういうアプリは好きじゃないな。


323 名前:デフォルトの名無しさん :2005/06/08(水) 09:37:06
>>299
答えるまでもない質問にいちいち答えるなよ
スレがみにくくなる

324 名前:デフォルトの名無しさん :2005/06/08(水) 10:37:47
>>323
( ゚д゚)ポカーン

325 名前:デフォルトの名無しさん :2005/06/08(水) 10:54:48
タイムポカーン

326 名前:デフォルトの名無しさん :2005/06/08(水) 12:30:48
オーナードローでリストビューを描画しています。

ところが、アプリ側でLVM_SETITEMSTATEを使い、リストビューの項目を選択状態にしても、
WM_DRAWITEM時に、ODS_SELECTEDフラグが立ってくれなくて困っています。
(マウスで普通に項目を選択した場合は、問題なくODS_SELECTEDが付いてます。)

何か解決方法をご存知の方、ひとつよろしくお願いします。

327 名前:デフォルトの名無しさん :2005/06/08(水) 13:44:53
>>322
あなたの好みは訊いてません

328 名前:デフォルトの名無しさん :2005/06/08(水) 14:01:30
>>327
じゃあ、君の好みはどうですか?

329 名前:デフォルトの名無しさん :2005/06/08(水) 14:56:25
>>311

330 名前:デフォルトの名無しさん :2005/06/08(水) 18:36:51
乱数の初期化は、こんな↓でいいですか?
GetSystemTime(&t);
srand((t.wSecond << 16 | t.wMilliseconds));

331 名前:330 :2005/06/08(水) 18:40:42
すいませんtime()ありました。

332 名前:デフォルトの名無しさん :2005/06/08(水) 18:46:25
>>330-331
GetTickCount()なんてのもある。

333 名前:デフォルトの名無しさん :2005/06/08(水) 18:55:00
QueryPerformanceCounter()なんt(ry

334 名前:デフォルトの名無しさん :2005/06/08(水) 19:24:02
好みはSetWindowRgn

335 名前:デフォルトの名無しさん :2005/06/08(水) 20:43:54
乱数の使用目的による。
ゲーム程度ならそれで十分だが
暗号鍵の作成だったらやめとけとか

336 名前:デフォルトの名無しさん :2005/06/08(水) 21:14:47
暗号鍵の作成にsrandとかrandとか使うなよ(w

337 名前:デフォルトの名無しさん :2005/06/08(水) 21:58:58
乱数とはちょと違うがGUIDを生成する手もある。

338 名前:デフォルトの名無しさん :2005/06/08(水) 22:04:11
>>326
それ俺もなったなぁ
MFCでだけど

339 名前:デフォルトの名無しさん :2005/06/08(水) 23:20:16
>>326
LVM_SETITEMSTATE送るときにLVITEMのstateMaskを間違えてない?
(ListView_SetItemStateマクロの方なら第四引数のmask)

340 名前:デフォルトの名無しさん :2005/06/09(木) 06:05:43
すいません、特定のアプリケーションのプロシージャとかではなくて
windowsがアプリケーションにメッセージを送る前にメッセージを
フックしたいのですがどうすればいいですか。教えてくださいお願いします。

341 名前:デフォルトの名無しさん :2005/06/09(木) 06:08:55
”グローバルフック”か”システムフック”でサーチすると幸せになれると思うよ。

342 名前:デフォルトの名無しさん :2005/06/09(木) 10:39:34
こんにちは

質問ですが、
タブコントロールのタブ部分につけるテキストのサイズを変更したい場合は、
どのようにすればよいのでしょうか。

343 名前:デフォルトの名無しさん :2005/06/09(木) 11:10:30
質問なんですが、プロセスIDを取得済みのExplorerに対して、トップウィンドウなりフォルダビューなりにメッセージを送るなどして、他のフォルダに移動したいのですが、どうしたらよいでしょうか?(新しくウィンドウを開くのではなく)
とりあえず今の時点では、その時に表示中のフォルダのサブフォルダの一つに名前を指定して移動できればいいので、キーボード系のメッセージをフォルダ名の順番に送って最後にエンター送ろうかとも思ったのですが、それだと日本語のフォルダ名に対応できません。
将来的には任意のフォルダにフルパス指定で移動っていうのも視野に入れたいので、何かいい方法があったら教えてください。

344 名前:デフォルトの名無しさん :2005/06/09(木) 11:20:07
リストビューのアイテムの中にコンボボックスを入れることはできますか?

345 名前:デフォルトの名無しさん :2005/06/09(木) 11:40:00
USB接続の新しいドライブが増えたり、フォルダ内の内容が変わったりしたときに、それを検出するにはどうしたらよいのでしょうか?


346 名前:デフォルトの名無しさん :2005/06/09(木) 11:53:41
RegisterDeviceNotification

347 名前:デフォルトの名無しさん :2005/06/09(木) 13:39:28
FindFirstChangeNotification

348 名前:デフォルトの名無しさん :2005/06/09(木) 15:31:58
現在のデフォルトプリンタと、給紙トレイを取得する方法を教えて下さい。

349 名前:デフォルトの名無しさん :2005/06/09(木) 15:55:20
トイレの紙を補給する方法を教えて下さい。


350 名前:デフォルトの名無しさん :2005/06/09(木) 15:58:27
マニュアルを読んでください。

351 名前:デフォルトの名無しさん :2005/06/09(木) 16:06:09
>>349
手でふきなさい。

352 名前:デフォルトの名無しさん :2005/06/09(木) 16:29:38
>>349
むしろ拭かなくてよい。

353 名前:デフォルトの名無しさん :2005/06/09(木) 16:44:54
拭き取るのは、体に付いた栄養素を取ってしまうことと一緒だからな。

354 名前:デフォルトの名無しさん :2005/06/09(木) 17:13:36
>>344
無理

355 名前:デフォルトの名無しさん :2005/06/09(木) 17:28:58
>>353
つまり、拭き取ってもう一度口から摂取すればいいわけですね。

356 名前:デフォルトの名無しさん :2005/06/09(木) 17:34:17
デフォルトプリンタはたしか
GetProfileString("windows", "device",・・・
でいいんじゃなかったかなあ

357 名前:デフォルトの名無しさん :2005/06/09(木) 17:41:37
PrintDlg / PD_RETURNDEFAULT

358 名前:デフォルトの名無しさん :2005/06/09(木) 18:14:12
指定したフォルダにあるファイル一覧を取得したい場合はどのようにすればよいのでしょうか。
よろしくお願いします。

359 名前:デフォルトの名無しさん :2005/06/09(木) 18:31:18
>>358
FindFirstFile()
FindNextFile()
FindClose()

360 名前:デフォルトの名無しさん :2005/06/09(木) 19:24:21
デスクトップ上のウィンドウで一番手前にあるウィンドウをアクティブにするにはどうすればいいですか?

361 名前:デフォルトの名無しさん :2005/06/09(木) 20:03:07
一番手前にあるのにアクティブじゃないWindowなんてありません

362 名前:デフォルトの名無しさん :2005/06/09(木) 20:07:47
なこたない

363 名前:デフォルトの名無しさん :2005/06/09(木) 20:12:15
>>360
理屈ではSetActiveWindow(GetTopWindow(NULL));
でもXPとかでは勝手に手前に出さないようになった。

364 名前:デフォルトの名無しさん :2005/06/09(木) 20:16:21
PlgBlt、
MicroSoftによると2000、XPは対応で
95,98は未対応とのことだが、

これってMeは未対応ってことですよね。

365 名前:デフォルトの名無しさん :2005/06/09(木) 20:18:40
ウィンドウの背景描画用ブラシを動的に交換することはできますか?
あるラジオボタンがクリックされたときに、そのラジオボタンの領域
の色(これはウィンドウの背景色ですよね?)を変更したいのです。

366 名前:デフォルトの名無しさん :2005/06/09(木) 20:18:52
そう。

367 名前:デフォルトの名無しさん :2005/06/09(木) 20:21:41
>>366
タイミングとレス内容からして>>364へのレスですよね。
やっぱりそうか。どもです。

368 名前:デフォルトの名無しさん :2005/06/09(木) 20:28:31
>>365
オーナードロー

369 名前:デフォルトの名無しさん :2005/06/09(木) 20:48:07
WM_CTLCOLOR

370 名前:デフォルトの名無しさん :2005/06/09(木) 20:49:29
>>362
なこたないこたぁない

371 名前:デフォルトの名無しさん :2005/06/09(木) 20:55:05
HWND_TOPMOST ((HWND)-1) winuser.h
ウィンドウをすべての最前面ウィンドウよりも前に置きます。ウィンドウは、 アクティブでなくても手前に置かれます。

372 名前:デフォルトの名無しさん :2005/06/09(木) 20:55:16
MFCではなくAPIを使ったSDKというのでプログラムを書けるようになるのが目標の
初心者プログラマです
今後の勉強の仕方に悩んでおり、相談にのっていただけると助かります
Cの入門書が終わり、この後、VC++を購入して
猫でもわかるWINDOWSプログラミング
プログラミングWindows第5版〈上、下〉
Win32API完璧マスタ―Visual C++プログラミング
のどれかの本を購入して勉強していこうと思っております

正直、VC++とかMFC・SDKとかAPIとかについて良く分かっておらず
このような勉強の仕方でよいのか不安があります

私の認識では
・VC++とは、コンパイラ・デバッガ・MFCと呼ばれる各種ライブラリ等が入った
開発環境で、MFCではなくSDKを使いたい人にも便利で、Cをやるなら買っておいた
ほうがよいソフト
・MFCとは、WINDOWS用プログラムを作る際、知らなければならないAPIは命令の数も
多く難しい。VC++では、APIを知らない人でもWINDOWSプログラムが簡単に作れるように
MFCという各種ライブラリがある。一般的にVC++用の初級本では、特にAPI・SDK用と書いていない場合
MFCを中心とした本が多い
・SDKとは、APIを使ってWINDOWSプログラムを作る技術
・APIとは、WINDOWSプログラムを作る際、WINDOWSのOSに命令を渡す方法
こんな認識であってますか?
また、C入門書の後、前記の3つの本でVC++とWINDOWSプログラムを勉強しようと
思っておりますが、これらの中でC++やVC++の使い方を前もって知らないときつい
本はありますか?
このような勉強方法以外に、お勧めの勉強法はありますか?
長くなりましたが、宜しくお願いします

373 名前:デフォルトの名無しさん :2005/06/09(木) 21:11:11
コンパイラ・デバッガはツールでMFCはライブラリでVC++はそれらを含む
パッケージ。SDKだけならVC++はそう便利でもないような。API知らないと
MFCは苦しい。むしろMFCで覚える量は増える。減るのはコーディングの
量だけ。本は「ウィザードで雛形を作りましょう」って感じのが殆ど。コードを
直に書きましょうってのはほとんどない。そしてウィザードの作ったコードの
意味が分からずにドツボにハマる。SDKはSoftware Development Kitの略。
その名の通り、kit。技術ではない。APIは渡す「方法」ではなく、命令(または
その集合)そのもの。

374 名前:デフォルトの名無しさん :2005/06/09(木) 21:13:31
SDKだけでもVC++は便利だと思います

375 名前:デフォルトの名無しさん :2005/06/09(木) 21:21:44
>>372
http://e-words.jp/w/Visual20C2B2B.html
http://e-words.jp/w/mfc.html
http://e-words.jp/w/API.html
http://e-words.jp/w/SDK.html

猫でも〜 なら↓覗いてみ
http://www.kumei.ne.jp/c_lang/

俺ならクラスの勉強に移る

376 名前:375 :2005/06/09(木) 21:24:33
クラスってかC++だな

377 名前:デフォルトの名無しさん :2005/06/09(木) 21:59:39
>>368
「オーナードロー」を調べてみました。そして、WM_DRAWITEM がプローシージャにきた時に、
そのまま return 0; するプログラムを書いてみたのですが、ラジオボタンの◎もテキストも
表示されなくなりました。なんだかよくわかりません。ラジオボタンの◎とテキストを返し
てください。

>>369
WM_CTLCOLOR は windows.h で定義されていないようです。コンパイラに怒られました。

378 名前:デフォルトの名無しさん :2005/06/09(木) 22:01:55
コンパイラに怒られる前にMSDNあたってみろよ

379 名前:デフォルトの名無しさん :2005/06/09(木) 22:07:27
>377
オーナードローというのはコントロールの描画をコントロールに任せず自前で描く事。
チェックの状態やテキストは BM_GETCHECK や WM_GETTEXT で取得。

380 名前:デフォルトの名無しさん :2005/06/09(木) 22:11:30
>>363
GetTopWindowするとうちの環境ではIMEのツールバーが返ってきてしまい
それをアクティブにするとエラーがでてしまいます(成功してもあまり意味ないですし・・・)。
Alt+TABで切り替えられるウィンドウに限定することは出来るでしょうか?
やりたいのはこんなことなんですが
// アクティブウィンドウを裏に回して次のウィンドウに切り替える
HWND h = GetForegroundWindow();
SetWindowPos(h, HWND_BOTTOM, ...);
h = GetTopWindow(0); // <-ここでIMEのツールバーが引っかかる
SetActiveWindow(h);

381 名前:デフォルトの名無しさん :2005/06/09(木) 22:14:20
>>361 ( ´,_ゝ`)プッ・・

382 名前:デフォルトの名無しさん :2005/06/09(木) 22:21:19
>>379
ということは◎やテキストも自分で描くんですか?背景色を変えたいだけ
なんですけど。今、ラジオボタンの領域の背景はグレーなのですが、
クリックして選択された場合には赤などに(選択されたことを強調する意味)
したいのです。その他の点はまったく同じで。

383 名前:デフォルトの名無しさん :2005/06/09(木) 22:39:11
漏れは、サブクラス化してWM_PAINTを乗っ取る方法を
使ったな。ほかにも幾つか捕まえるべきメッセージが
あったはずだけど、それは忘れた。

384 名前:デフォルトの名無しさん :2005/06/09(木) 22:39:17
だから、WM_CTLCOLOR

385 名前:デフォルトの名無しさん :2005/06/09(木) 22:51:50
>>384
調べたらMFCがどうたらとか出てきたのですが。。。
このスレMFCはなしでしょ?Win32APIの呼び出しで解決したいのですが。
WindowBackgroundBrushChangeHappy(hMyRadioButton, hMyBrush) みたいな。

386 名前:デフォルトの名無しさん :2005/06/09(木) 22:52:30
WM_CTLCOLORはWIN16時代のもので、
今は
WM_CTLCOLORBTN、WM_CTLCOLORDLG、WM_CTLCOLOREDIT、...
に分かれている
つかMSDN嫁

387 名前:デフォルトの名無しさん :2005/06/09(木) 22:59:06
>>381
(^ω^;)そう笑うなよ

388 名前:365 :2005/06/09(木) 23:47:44
>>386
ありがとう。ありました。でもうまくいきません。どなたかソース見てください。
元の質問は >>365 です。

#include <windows.h>

#define IDR_COKE 10001
#define IDR_COFFEE 10002

void OnCreate(HWND hWnd)
{
CreateWindow("BUTTON", "コーラ", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_GROUP,
0, 0, 100, 18, hWnd, (HMENU)IDR_COKE, (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), 0);

CreateWindow("BUTTON", "コーヒー", WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON,
0, 20, 100, 18, hWnd, (HMENU)IDR_COFFEE, (HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), 0);
}

389 名前:続き :2005/06/09(木) 23:48:47
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg) {
case WM_CREATE:
OnCreate(hWnd);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CTLCOLORBTN:
return (LRESULT)CreateSolidBrush(RGB(0xff, 0, 0));
default:
return DefWindowProc(hWnd, msg, wp, lp);
}
}

390 名前:続き :2005/06/09(木) 23:50:05
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int nCmdShow)
{
WNDCLASS winclass = {
CS_HREDRAW | CS_VREDRAW, WndProc, 0, 0, hInst, 0, LoadCursor(0, IDC_ARROW),
(HBRUSH)(COLOR_WINDOW+1), 0, "MainWindow",
};
RegisterClass(&winclass);

HWND hWnd = CreateWindow("MainWindow", "test", WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0,
CW_USEDEFAULT, 0, 0, 0, hInst, 0);

ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);

MSG msg;
while (int rt = GetMessage(&msg, 0, 0, 0)) {
if (rt == -1) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}

391 名前:デフォルトの名無しさん :2005/06/09(木) 23:51:43
ソースを貼り付けんな馬鹿。
どっかにうぷってそのアドレスを貼り付けろ

392 名前:365 :2005/06/09(木) 23:53:36
どっかにうっぷる方法が分かりません。もうしないので、ご勘弁を。

393 名前:デフォルトの名無しさん :2005/06/09(木) 23:54:41
荒らしヨクナイ

394 名前:デフォルトの名無しさん :2005/06/10(金) 01:18:35
> return (LRESULT)CreateSolidBrush(RGB(0xff, 0, 0));
アフォ

395 名前:365 :2005/06/10(金) 01:28:33
>>394
もっと詳しく。リークなら怖くありません。テストプログラムなので。

396 名前:デフォルトの名無しさん :2005/06/10(金) 02:14:42
ラジオボタンなら
WM_CTLCOLORBTN じゃなくて
WM_CTLCOLORSTATIC だ。

397 名前:デフォルトの名無しさん :2005/06/10(金) 02:17:12
どうでもいいけど >>365 はC++で完全にC + SDKスタイルで書いてるんだな
そういう人、結構いるの?

398 名前:デフォルトの名無しさん :2005/06/10(金) 06:13:59
個人でMFC使う利点がわからないので俺もSDKスタイル

399 名前:デフォルトの名無しさん :2005/06/10(金) 06:26:02
COM関係扱うときはMFCとかATL/WTLのほうが楽じゃないか?
といいつつ俺も普段は生APIだな。

400 名前:デフォルトの名無しさん :2005/06/10(金) 06:33:16
俺は生APIから入ったからAPIは知ってるけどMFC・ATL/WTLを知らない

401 名前:デフォルトの名無しさん :2005/06/10(金) 07:15:36
ぶっちゃけ生API派な俺にはMFCとかキモ過ぎ
自分で必要なクラス設計した方が気持ちいい

402 名前:デフォルトの名無しさん :2005/06/10(金) 07:40:40
ATL/WTLはいいと思うけどな。ATL/WTLを使い出す前はメッセージクラッカー使っていた。
どっちも使っている人少ない……。 ○| ̄|_

403 名前:デフォルトの名無しさん :2005/06/10(金) 07:52:08
生APIはソースが汚くなるから、ATL/WTLかMFCを使う。

404 名前:デフォルトの名無しさん :2005/06/10(金) 07:55:04
ここは生々しいインターネッツですね。

405 名前:デフォルトの名無しさん :2005/06/10(金) 08:09:24
やっぱり生がいちばん

406 名前:デフォルトの名無しさん :2005/06/10(金) 08:16:29
質問です

コンパネにある「サウンドとオーディオ」の
ハードウェアtabにある既定のデバイスを、
ソフト側から変えたい
(たとえばあるソフトを使うときは特定のデバイスを出力対象にしたい)
のですが、APIは何を使えばよいんでしょう?

ボリュームをかえるmixerってのはよく検索にひっかかるんですが、
どうも求めるものじゃなさそうだし・・・
ちなみに開発環境はXPでVB

407 名前:デフォルトの名無しさん :2005/06/10(金) 09:27:16
しかし、MFCにあるけどAPIに無い、って場合
ソース見てどのAPI使ってるかの確認くらい
できないのかねぇ

408 名前:デフォルトの名無しさん :2005/06/10(金) 09:35:21
FillSolidRectとかな

409 名前:デフォルトの名無しさん :2005/06/10(金) 10:27:36
Windows 2000

「ハードウェアの取り外し」ダイアログで
適当な装置に対して取り外し操作がおこなわれたときの
アクションをつくる必要があります

APIドキュメントを読むと

WM_DEVICECHANGE

というメッセージがきて
「取りはずし要求」をしめす

DBT_DEVICEQUERYREMOVE

というイベントをもっている,
ということになっています.

ところが実験してもこのイベントのメッセージがきません

「取りはずし」が終わったことを示す

DBT_DEVICEREMOVECOMPLETE

というイベントはちゃんときています.

ほしいのは「取りはずし」の事前のメッセージなんです
なぜこれが来ずに終わった後のは来るのでしょうか?
どうしたら事前に来るようになるのでしょうか?



410 名前:デフォルトの名無しさん :2005/06/10(金) 11:32:12
SDKでグローバル変数を使わず作るのが本当の熟練者。

411 名前:デフォルトの名無しさん :2005/06/10(金) 11:34:39
>>410
熟練者とまで行かなくても使わずに済ませられると思うが

412 名前:デフォルトの名無しさん :2005/06/10(金) 11:43:05
もちろんウィンドウプロシージャ内でのstatic変数も駄目。

413 名前:デフォルトの名無しさん :2005/06/10(金) 11:43:10
使っても問題ないしな

414 名前:デフォルトの名無しさん :2005/06/10(金) 12:01:33
GetWindowLongだのGetPropだのサンクだの程度では熟練者じゃないな。

415 名前:デフォルトの名無しさん :2005/06/10(金) 14:18:43
>>402
ATLはやはりCOM系の開発で使われることが多い希ガス

ATL7+WTLで普通のWindowプログラム書くの、悪くないんだけどWTLは
非標準だしドキュメント不足なので、仕事で使うには二の足を踏んでしまう

まあATL7だけでも、生APIゴリゴリよりはぜんぜんマシだと思うけど。
特にActive X controlのホスティングとか、生APIではやってらんない。
あれと同等のものを作るのは車輪の再発明でしかないよ。


416 名前:デフォルトの名無しさん :2005/06/10(金) 15:20:05
>WTLは非標準だし
WindowsAPI、MFCは標準なのか?


417 名前:デフォルトの名無しさん :2005/06/10(金) 15:32:07
最近メッセージクラッカーを覚えて少しだけソースが読みやすくなったと思っています。

MFCとかATL/WTLってどういうもの?
Win32APIをクラスでラップしたものという解釈でいいの?

覚えてみようかとも思っているけど、MFCとATLってどっちがいいのかわからないんですが。

418 名前:デフォルトの名無しさん :2005/06/10(金) 15:58:16
>>417
MFCよりATLの方がAPIをラップしただけという感が強いと思う。
ATL自体はメッセージクラッカーのような物を持っていない。(W/LPARAMがそのまま渡される)
そこへWTLを使うとメッセージをクラックするのがついてくる。

419 名前:デフォルトの名無しさん :2005/06/10(金) 16:11:21
FindFirstFileを使って、フォルダ内のファイルを検索したんですが、
FindFirstFileからWIN32_FIND_DATAに格納される値が必ず"フフフフフフフフフフフフフフフ"となってしまいます。
なぜなのでしょうか。
C言語ソースファイルだけを抽出しようとしています。

ちなみに、指定しているパス名は、
WIN32_FIND_DATA FindFileData;
HANDLE hFind;

hFind=::FindFirstFile("C:\\MySourceFile\\*.c",&FindFileData);
というかんじです。

420 名前:デフォルトの名無しさん :2005/06/10(金) 16:13:02
>>416
MS的には非標準でしょ

>>417
C++使ってオブジェクト指向でWindowを扱おうとすると

Window class --> C++ class
Window --> C++ object

のように対応付けるのが普通。というかそうしたくなる。
そうすると問題になるのが、グローバル/staticな関数であるWindowProcで、
これをC++クラスのインスタンスメソッド(メンバ関数)にマップしたい訳。

で、その方法は色々あって、一番単純なのはSetWindowLongでC++クラスの
インスタンスのポインタをWindowに設定してしまうことなのだが、
# こうした方法の例はPlatformSDKのCOMサンプルなどに存在する。
ATLのようなライブラリではもっとマシで効率の良い方法が用いられている。

まあC APIのラッパーで基本的には間違ってないんだけど、
上述したように、よりC++的にWindowingできる仕組み・フレームワークを提供している
という点がまあ一番のポイントじゃないかな。
それと、利便性だけで言うなら、COMコンポーネントを使うのは
MFCやATLを使う方がCで直触りするよりずっと簡単。
COMサポートに関しては、ただの「薄いラッパー」をはるかに超える
充実した機能が提供されてるから。

421 名前:デフォルトの名無しさん :2005/06/10(金) 16:15:59
>>419
関数が失敗してるんじゃね?

戻り値をチェックしる

422 名前:デフォルトの名無しさん :2005/06/10(金) 16:51:23
フフフ・・・はdebugモードでの未初期化の内容
つまり、フフフがセットされたのではなくて
誰もセットしてないってこと。
>>421の言うように失敗してると思われ

423 名前:デフォルトの名無しさん :2005/06/10(金) 17:22:23
ちょいと気になることなんだけど
VirtualAllocVlmのような64bitAPIは抹殺されたの?
英語版のMSDNに載ってないんだけど。

424 名前:デフォルトの名無しさん :2005/06/10(金) 17:29:38
フフフはint3

425 名前:デフォルトの名無しさん :2005/06/10(金) 17:31:11
ヒヒヒヒヒ は ネオ麦茶

426 名前:デフォルトの名無しさん :2005/06/10(金) 17:52:00
ウホッ は ヤマジュン

427 名前:デフォルトの名無しさん :2005/06/10(金) 19:03:17
>>416
このスレでそれを言っちゃおしまいよ

428 名前:デフォルトの名無しさん :2005/06/10(金) 19:03:56
>>417
ATL にも MFC にも、APIを適当にラップしたクラスと、
アプリケーションやコンポーネントを作るためのフレームワークとの
両方が入ってます(他にユーティリティ的なものもある)。

API をラップした部分ははっきりいってどうでも良いものが大半なのですが、
フレームワークの方は VC++ の独自拡張構文や VisualStudio の支援とも
有機的に結合していて大変結構役に立ちます。

429 名前:417 :2005/06/10(金) 19:24:59
ちょっと調べてみたところ、ATLやWTLが面白そうです。
Win32APIは今までどおり使いたいけど、
生でAPIを使ってGUIを書くと面倒ですし。

といっても、その辺に転がっているGUIの独自なライブラリだと、
自由にできなくて不満だったり。


WindowsのGUIの仕組みって、もう少し簡単にはできなかったのかな。
といっても、現行のメッセージを投げる以上にいい仕組みが思いつかないへたれですがorz

430 名前:365 :2005/06/10(金) 21:31:05
>>396
ありがとう。まだうまくいかないけどがんばってみます。

431 名前:デフォルトの名無しさん :2005/06/10(金) 23:48:22
フフフフフフフフフ って笑われてんだよ おめー何つくってんだよって

432 名前:デフォルトの名無しさん :2005/06/11(土) 00:06:43
WTLがバージョンアップした日にWTLスレよりWTL関係のレスが多いスレはここですか。

433 名前:デフォルトの名無しさん :2005/06/11(土) 01:15:56
Windowsプログラミングの達人になるためにはどのくらいの期間が必要ですか?

434 名前:デフォルトの名無しさん :2005/06/11(土) 01:18:00
今まで食ったパンの枚数×秒

435 名前:デフォルトの名無しさん :2005/06/11(土) 01:24:04
まじめに頼む。

436 名前:デフォルトの名無しさん :2005/06/11(土) 01:24:05
すまんかった

437 名前:デフォルトの名無しさん :2005/06/11(土) 01:24:59
1秒でレスが。。。

438 名前:デフォルトの名無しさん :2005/06/11(土) 02:00:02
>>435
人それぞれ

439 名前:デフォルトの名無しさん :2005/06/11(土) 02:02:34
どれぐらいのレベルならWindowsプログラミングの達人なんだろうな
IEやMicrosoft Excelが自分で組めたら達人か?
カーネル書くとかは、Windowsプログラミングとはいえないような気がするな

440 名前:デフォルトの名無しさん :2005/06/11(土) 02:10:45
>>439
初心者の質問に
迅速かつ丁寧に答えられるようになったらマスターだぜъ( ゚ー^)

441 名前:デフォルトの名無しさん :2005/06/11(土) 02:52:05
デュアルディスプレイの環境で2つ目のディスプレイのDCを取得するにはどうしたらいいのでしょうか?

442 名前:デフォルトの名無しさん :2005/06/11(土) 05:21:09
Windowsのページ保護を勉強して悩んでいるんですが、プロセス空間内に、読めるけど書き込めないページが存在してますよね?
これはページ属性のR/Wビット(PTE-b1)を0にしているからだと思うんですが、このビットは486以降の機能だと本に書いてありました。(アスキー出版局「はじめて読む486」P.308)
Windows95や以前のWindowsNTでは386(SX)が最低スペックですよね?
だとするとそうしたマシンではこの機能が実現されてなかった、というわけなんでしょうか・・・?(どのページも書き込めてしまったのか!?)
誰か、386で95やNTを動かしてみた、あるいは現在動かしている、という方、いらっしゃいますかね?
ご存じの方、お教え下さい。


443 名前:デフォルトの名無しさん :2005/06/11(土) 08:18:27
ウィンドウを作って、ステータスバーを付けたのですが
スクロールバーを付けていると、水平スクロールバーの
上にステータスバーが表示されてしまいます。
ステータスバーをウィンドウの1番下に表示したいのですが
なにかいい方法はないでしょうか。

444 名前:デフォルトの名無しさん :2005/06/11(土) 08:40:11
親ウィンドウにステータスバーを貼り付け残りの部分に子ウィンドウを一枚張る。
その子ウィンドウにスクロールバーをつける。

445 名前:デフォルトの名無しさん :2005/06/11(土) 11:12:42
>>442
スレタイ嫁

446 名前:デフォルトの名無しさん :2005/06/11(土) 12:23:52
>>445
「質問箱」ですよね。だからここで質問してるのです。

447 名前:デフォルトの名無しさん :2005/06/11(土) 12:45:08
何の質問箱か。それが重要だ。

448 名前:デフォルトの名無しさん :2005/06/11(土) 13:09:34
一応メモリ割り当てAPI関係の質問じゃないか?
というか他に該当スレ思いつかん



分かるのがいるかどうかは別として
386SXじゃ95はおろか3.1でも実用にならないしなぁ

449 名前:デフォルトの名無しさん :2005/06/11(土) 16:17:33
APIをはじめたばかりであまりわからないのですが、
ビットシフトはなんの役に立つのでしょうか?

450 名前:デフォルトの名無しさん :2005/06/11(土) 16:19:23
APIとは関係ありません。

451 名前:デフォルトの名無しさん :2005/06/11(土) 16:43:20
こんばんわ

リソースにあるビットマップファイルをLoadBitmapで読み込むのはわかりますが、
ファイルとしてある.bmpを読み込みHBITMAPへ格納するための手順がわかりません。

簡単で構いませんので、使用するAPIを教えていただけ無いでしょうか。
後は私が調べます。

よろしくお願いいたします。

452 名前:デフォルトの名無しさん :2005/06/11(土) 16:45:25
LoadImage

453 名前:デフォルトの名無しさん :2005/06/11(土) 16:46:58
>>451
LoadImage()でLR_LOADFROMFILE指定

454 名前:デフォルトの名無しさん :2005/06/11(土) 16:52:13
リストビューのアイテム欄にコンボボックスつけられたっけ?

455 名前:デフォルトの名無しさん :2005/06/11(土) 16:55:17
そんな機能はリストビューには無い。

456 名前:デフォルトの名無しさん :2005/06/11(土) 17:16:48
>>454
付けようと思えば付けれる

457 名前:デフォルトの名無しさん :2005/06/11(土) 17:31:16
ただ上に被せるだけだがな

458 名前:デフォルトの名無しさん :2005/06/11(土) 17:44:00
リストビュー+エディットやコンボでお手軽グリッドみたいなのは
よくやるな

459 名前:デフォルトの名無しさん :2005/06/11(土) 20:19:51
OfficeやVisualStudioで使われているリバー(ウィンドウ上側についてる)のライブラリは一般公開されてますか?
是非使いたいのですが。

460 名前:デフォルトの名無しさん :2005/06/11(土) 20:30:45
>>459
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/msdn_rebar.asp

461 名前:デフォルトの名無しさん :2005/06/11(土) 21:57:59
>>444
助かりました。
ありがとうございます。

462 名前:デフォルトの名無しさん :2005/06/11(土) 21:59:31
>>460
それはOfficeで使われてるツールバーとは違いますよ。

463 名前:デフォルトの名無しさん :2005/06/11(土) 22:22:24
じゃXPとか2003とか言わんと

464 名前:デフォルトの名無しさん :2005/06/11(土) 22:57:04
Windowのコンテントカラーを変えたい場合はどのAPIを呼べばいいのでしょうか?

Windowsの場合は、ウィンドウでデフォルトが白、ダイアログで灰色ですよね。

465 名前:デフォルトの名無しさん :2005/06/11(土) 23:04:07
>>464
http://wisdom.sakura.ne.jp/system/winapi/win32/win60.html

466 名前:464 :2005/06/11(土) 23:36:49
>>465
できれば、ウィンドウ個別に色を変えたいのですが。

467 名前:デフォルトの名無しさん :2005/06/11(土) 23:43:27
VCでウィンドウソフトを作っているんだけど(APIのみ)
そのソフトを閉じるときタマに反応が返ってこなくなりOS(XP)の動作もおかしく
なってしまいます。
原因はスレッドのシグナル待ちが考えられるけどそれ以外に原因が思いつきません。
メモリーはリークはしていません。
誰かアドバイスください。


468 名前:デフォルトの名無しさん :2005/06/11(土) 23:45:44
>>467
そのスレッドのシグナル待ちをどうにかしろよとしか言えない。

469 名前:デフォルトの名無しさん :2005/06/11(土) 23:45:59
>>467
ソース晒せ


470 名前:デフォルトの名無しさん :2005/06/11(土) 23:46:16
>>466
諦めろ

471 名前:デフォルトの名無しさん :2005/06/12(日) 00:21:55
>>459
http://www.bcgsoft.com/bcgcontrolbar.htm
こんなのあるぐらいだから、されてねーんじゃね?

472 名前:デフォルトの名無しさん :2005/06/12(日) 00:54:46
>>467
デバッグ実行すれば、どこで制御が返って来なくなるかわかるだろ。

473 名前:デフォルトの名無しさん :2005/06/12(日) 01:23:34
>>467
GetMessageが-1返してるとか

474 名前:デフォルトの名無しさん :2005/06/12(日) 04:47:42
CPUとHDDの温度を取得する方法を教えてください

475 名前:デフォルトの名無しさん :2005/06/12(日) 08:21:32
>>466
オーナードロー

476 名前:デフォルトの名無しさん :2005/06/12(日) 08:21:55
>>474
BIOS依存。確かAPIでは無い。

477 名前:デフォルトの名無しさん :2005/06/12(日) 08:43:36
ThemeAPI関係で質問させてください。
VSを適用したときのReBarコントロールの背景を描画したいので
すが、OpenThemeDataでReBarのテーマハンドルを取得し、
DrawThemeBackgroundでRP_BANDを指定したのですが何も描画
されませんでした。

CodeProjectから
ttp://www.codeproject.com/w2k/xpvisualstyle.asp
このようなものをみつけ、RebarのRP_BANDを調べてみたのです
が、どのテーマを調べても何もセットされないことがほとんどでした。
他のパーツなのかと思い、一致するものを探したのですがどうも
同じパーツを見つける事ができません。

Rebar(もしくはToolbar)コントロールの背景はどうすれば描画できる
のでしょうか?

478 名前:デフォルトの名無しさん :2005/06/12(日) 09:56:41
CPUの現在のクロック数などを取得するにはどうしたらよいのでしょうか?

479 名前:デフォルトの名無しさん :2005/06/12(日) 12:35:09
GetCPUClock

480 名前:デフォルトの名無しさん :2005/06/12(日) 13:48:17
GetCPUClockAndSoOn

481 名前:デフォルトの名無しさん :2005/06/12(日) 14:09:55
TreeView_SetItem(m_hWnd,pItem);で、TV_ITEMをセットした後、なぜか強制終了するのですが、
このような不具合ってご存知な人はいますか?

case WM_NOTIFY:
{
MSGFILTER *pmf;
TV_DISPINFO *ptv_disp;
int x,y;

if (wp==11000) {
ptv_disp=(TV_DISPINFO *)lp;
if(ptv_disp->hdr.code==TVN_ENDLABELEDIT)
{
tree.SetItem(&ptv_disp->item);
}
}
}


void CWinMyLapTree::SetItem(TV_ITEM* pItem)
{
TreeView_SetItem(m_hWnd,pItem);
}

482 名前:デフォルトの名無しさん :2005/06/12(日) 14:10:31
if (wp==11000) {

11000というのは、リストビューのIDです

483 名前:デフォルトの名無しさん :2005/06/12(日) 14:12:15
TreeView_SetItem(m_hWnd,pItem)の返り値は0で成功してます。

484 名前:デフォルトの各無しさん :2005/06/12(日) 14:38:58
return も break もしてないから次のラベルまで走ってんジャネーノ
知らねーけど

485 名前:デフォルトの名無しさん :2005/06/12(日) 15:28:32
C言語を一週間前に始めてifとかwhileとかを一通り覚えただけの俺が
今すぐにwinAPIでのゲーム作りにとりかかるのって無謀ですかね?

486 名前:483 :2005/06/12(日) 15:32:40
どうやら、TreeView_EditLabelを呼び出し処理後(エディット後)、強制終了します。
現在、原因究明中です。

487 名前:デフォルトの名無しさん :2005/06/12(日) 15:32:55
>>485
無謀だと思う。
平仮名覚えたてで小説書こうとするようなもんだ。

488 名前:デフォルトの名無しさん :2005/06/12(日) 15:33:34
やりながら覚えるしかねーよ やらなきゃ覚えねーよ
目標あるのはいいことだ ただ自分の予定してる期間の100倍はかかると思っとけ
ゲームの内容にもよるが

489 名前:デフォルトの名無しさん :2005/06/12(日) 15:44:50
レスどうも。
やはり無謀でしたか・・・。HPとかみてもチンプンカンプンなわけだ。
出直してまいります。

490 名前:デフォルトの名無しさん :2005/06/12(日) 15:46:31
シューティングやアクション系なら素直にHSPでもつかっとけ

491 名前:デフォルトの名無しさん :2005/06/12(日) 16:11:42
俺は29歳だけど、Win32APIは余裕だよ。
MFCもマスターしてるし。
今から.NET覚えるつもり。

ただ、そんな俺も、18歳の時に始めてMacintoshのToolboxAPIを見て、「なんじゃこれ!???」と驚いたものです。
あまりの難しさに。

492 名前:デフォルトの名無しさん :2005/06/12(日) 16:13:47
つ チラシの裏

493 名前:デフォルトの名無しさん :2005/06/12(日) 16:45:21
   φ(・∀・)
チラシの裏

494 名前:483 :2005/06/12(日) 17:13:46
解決しました。

ツリービューのエディタ部分って、編集が終わったらマウスのクリックじゃないと終われないんだな。
キーボードのリターンキーだと無反応だわ。

495 名前:デフォルトの名無しさん :2005/06/12(日) 17:19:20
CPUの現在のクロック数などを取得するにはどうしたらよいのでしょうか?

496 名前:デフォルトの名無しさん :2005/06/12(日) 17:27:21

その質問最近どこかで見かけたな


497 名前:デフォルトの名無しさん :2005/06/12(日) 17:28:14
>>496
>>478

498 名前:デフォルトの名無しさん :2005/06/12(日) 17:55:01
CPUの現在のクロック数などを取得するにはどうしたらよいのでしょうか?

499 名前:デフォルトの名無しさん :2005/06/12(日) 18:10:57
>>442
PTEのR/Wビットなら386の時代からあるよ。
その本が変なこと書いてるか、喪前さんが誤読してるかのどっちかだろ。

あと、CPU特化話だから機械語なんとかってスレで聞いた方がいいかと。

>>491
難しいっていうか、面倒臭いんだよな。
WinAPIからDefWindowProc()を取り除いた風って言えばわかりやすいかな。

500 名前:デフォルトの名無しさん :2005/06/12(日) 18:16:16
最新技術.NETのほうがWin32より簡単な罠


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.