Win32API質問箱 Build67

このエントリーをはてなブックマークに追加
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質問箱 Build66
http://pc11.2ch.net/test/read.cgi/tech/1210775622/
2デフォルトの名無しさん:2008/06/08(日) 22:21:25
3デフォルトの名無しさん:2008/06/08(日) 22:22:16
- 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 (書籍)
http://www.amazon.co.jp/dp/4756138055

-おまけ
Build19が見たい人で余裕のある人は●でも買ってくれ。
4デフォルトの名無しさん:2008/06/08(日) 22:23:57
5デフォルトの名無しさん:2008/06/08(日) 22:24:32
6デフォルトの名無しさん:2008/06/08(日) 22:25:49
7デフォルトの名無しさん:2008/06/08(日) 22:30:20
8デフォルトの名無しさん:2008/06/08(日) 22:32:10
>>1-7
9前スレ958:2008/06/08(日) 22:37:52
960 名前:デフォルトの名無しさん[sage] 投稿日:2008/06/08(日) 10:58:25
>>958
>>959のとおり、イベントログに情報がある。

ただ、OS起動やシャットダウンイベントはデフォルト設定だと記録されないはずなので、
設定を変えるか、もっと簡単にやりたいなら正確ではないけどイベントログサービスの
起動/停止時間をOS起動/シャットダウン時間とみなしてしまうやり方もある。

例がWin32APIでなくて申し訳ないけど、以下WMIのインタフェース使うスクリプトの例。

var query =
"Select * from Win32_NTLogEvent where " +
"LogFile = 'System' and SourceName = 'EventLog'";
var systemlogs = GetObject("winmgmts:!\\\\.\\root\\cimv2").ExecQuery(query);
var e = new Enumerator(systemlogs);
for (; ! e.atEnd(); e.moveNext()) {
var log = e.item();
if (log.EventCode == 6005) {//イベントログサービス起動
WScript.Echo("起動: "+log.TimeGenerated);
}
else if (log.EventCode == 6006) {//イベントログサービス停止
WScript.Echo("停止: "+log.TimeGenerated);
}
}


めちゃ助かりました。ありがとうございます。
10前スレ958:2008/06/08(日) 22:39:52
参考にして書いた.NETバージョンです

public static DateTime イベントログの前回停止時間()
{
EventLog[] logs = EventLog.GetEventLogs("."); // ローカルコンピュータ
DateTime result = DateTime.MinValue;
bool ok = false;

foreach (EventLog log in logs)
{
if (log.Log != "System") continue;

foreach (EventLogEntry e in log.Entries)
{
if (e.EventID != 6006) continue;

if (e.TimeGenerated > result)
{
result = e.TimeGenerated;
ok = true;
}
}
}

if (!ok)
{
throw new ApplicationException("イベントログの前回停止時間の取得失敗");
}

return result;
}
11デフォルトの名無しさん:2008/06/08(日) 22:50:52
>>10
スレ違い。邪魔。
12デフォルトの名無しさん:2008/06/08(日) 22:55:09
>>1
おつ
13デフォルトの名無しさん:2008/06/08(日) 23:03:03
英語だらけ
14デフォルトの名無しさん:2008/06/08(日) 23:05:46
>>11
スルーしとけ お前も邪魔
15デフォルトの名無しさん:2008/06/08(日) 23:06:56
>>14
ごめんなさい
16デフォルトの名無しさん:2008/06/08(日) 23:36:20
過去ログの横の★って何?
17デフォルトの名無しさん:2008/06/08(日) 23:46:50
datが行方不明って事では
18デフォルトの名無しさん:2008/06/08(日) 23:47:00
↑「いやー ごめんなさい。」に巻き込まれてログなし
19デフォルトの名無しさん:2008/06/09(月) 00:01:46
20デフォルトの名無しさん:2008/06/09(月) 12:45:41
誰もまともに答えてないところにちょっと情けなくも思ったが
>>前スレ904
ファイルをD&Dで渡す動作を再現するならTMPGEncのHWNDを検索で見付け、
HDROPを自前で作ってWM_DROPFILESを投げればいい
HDROPの作り方は検索すれば出てくる
21デフォルトの名無しさん:2008/06/09(月) 12:54:24
訳) やっと私に分かる質問を見つけて、喜び勇んでやってまいりました。
22デフォルトの名無しさん:2008/06/09(月) 13:13:38
訳:かまってほしいな
23デフォルトの名無しさん:2008/06/09(月) 14:47:22
オンラインゲームにキーストロークを送るツールを作ろうと思い、
全スレ>>73 を参考にコードを書いてみたのですが、まったく反応なし。
>>53で非推奨されている
keybd_event(0, MapVirtualKey(DIK_A) ,KEYEVENTF_SCANCODE ,0)
とかやってみたけどダメだった.
JoyToKeyではちゃんと送れているので、方法がない訳じゃないとは思うんだけど...
他のやり方があれば教えてくれ。
24デフォルトの名無しさん:2008/06/09(月) 15:08:30
ま た チ ー ト か
25デフォルトの名無しさん:2008/06/09(月) 15:15:15
全スレw
26デフォルトの名無しさん:2008/06/09(月) 15:33:23
やめときなさい、普通に遊びなさい。
27デフォルトの名無しさん:2008/06/09(月) 15:47:27
能書きはいいからさっさと教えろ
知らないならレスするなカス
28デフォルトの名無しさん:2008/06/09(月) 15:51:47
知ってても誰も教えてくれないよ。ニートちゃん。
29デフォルトの名無しさん:2008/06/09(月) 18:26:08
やり方知ってるよ
当然教えないよ
ゴミ君
30デフォルトの名無しさん:2008/06/09(月) 18:49:18
>>24-29
※すべて同一人物です
31デフォルトの名無しさん:2008/06/09(月) 19:05:17
↑これも俺
32デフォルトの名無しさん:2008/06/09(月) 19:12:22
↑これも私
33デフォルトの名無しさん:2008/06/09(月) 19:22:58
↑これも↓これも僕
34デフォルトの名無しさん:2008/06/09(月) 19:25:42
呼んだ?
35デフォルトの名無しさん:2008/06/09(月) 20:16:50
                | ̄``''- 、
                |      `゙''ー- 、  ________
                |    ,. -‐ ''´ ̄ ̄`ヽ、_        /
                |, - '´ ̄              `ヽ、     /
              /               `ヽ、ヽ   /
             _/                    ヽヽ/
           / / /   /  /  /            ヽハ
          く  / /!   |   〃 _/__ l|   | |   |  |  | | ||ヽ
           \l// / |  /|'´ ∧  ||   | |ー、||  |  | l | ヽ
            /ハ/ |  | ヽ/ ヽ | ヽ  | || /|ヽ/!  |/ | ヽ
            / |  ||ヽ { ,r===、   \| _!V |// //  .!   |
            | ||   |l |ヽ!'´ ̄`゙   ,  ==ミ、 /イ川  |─┘
            | ハ||  || | """ ┌---┐  `  / //  |
            V !ヽ ト! ヽ、    |     !    / //| /
               ヽ! \ハ` 、 ヽ、__ノ    ,.イ/ // | /
    ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/
    |(/(/(/(/(/(/(/(/(/(/│||      |\  〃
  r'´ ̄ヽ.              | | ト    /    \
  /  ̄`ア             | | |  ⌒/     入
  〉  ̄二) 呼んでないが  | | |  /     // ヽ
 〈!   ,. -'                | | ヽ∠-----', '´    ',
  | \| |   .お前の態度が   | |<二Z二 ̄  /     ',
  |   | |               _r'---|  [ ``ヽ、      ',
  |   | |   気に入らない >-、__    [    ヽ      !
  \.| l.              ヽ、      [     ヽ    |
    ヽ|              \    r'     ヽ、    |
36デフォルトの名無しさん:2008/06/09(月) 20:47:57
ウィンドウのメニューの背景色を変えたいのですが、
どうすれば出来ますか?
37デフォルトの名無しさん:2008/06/09(月) 22:06:58
オーナードロー
38デフォルトの名無しさん:2008/06/09(月) 22:16:36
質問です。
case WM_SYSCOMMAND:
 switch(LOWORD(wp)) {
 case SC_RESTORE:
 result = ::AnimateWindow(hWnd, 1000, AW_ACTIVATE | AW_CENTER);
 if(!result) {
 LPWSTR lpMessage = 0;
DWORD error = ::GetLastError();
CONSOLEMSG(L"ERROR:[%d]\n", error);
if( ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_FROM_SYSTEM,
NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
lpMessage, 0, NULL) ) {
if(!lpMessage)
MessageBox(hWnd, lpMessage, NULL, MB_OK);
} else {
error = ::GetLastError();
CONSOLEMSG(L"ERROR:[%d]\n", error);
}
}
break;
case SC_MINIMIZE:
::AnimateWindow(hWnd, 500, AW_HIDE | AW_CENTER);
ShowWindow(hWnd, SW_MINIMIZE);
return TRUE;
}
break;
3938:2008/06/09(月) 22:19:08
ウィンドウを最小化時と元に戻すときにアニメーションさせようと
上記のように元に戻すときのアニメーション書いたんですがうまくいきません。
原因が分かる方教えてください
40デフォルトの名無しさん:2008/06/09(月) 22:40:42
オードーナロー
41デフォルトの名無しさん:2008/06/09(月) 22:48:43
>>39
うまくいかない、じゃなくて具体的な現象を書けよ。
原因究明の重要な情報なんだからさ。
4238:2008/06/09(月) 22:59:19
>>41
説明足がたらず、すみません。
最小化時はウィンドウのアニメーションが実行されるんですが、
元に戻すときにAnimateWindowが失敗してアニメーションが実行されないんです。
GetLastErrorでエラーをチェックすると正常終了のIDがセットされているので原因がよく分からないのです。
ちなみにCONSOLEMSGはOutputDebugStringのマクロです。
43デフォルトの名無しさん:2008/06/09(月) 23:00:57
LVS_REPORTなリストビューで、カラムの文字列の左右のマージンを知りたいのですが、
どのように計算すればいいのでしょうか?
44デフォルトの名無しさん:2008/06/09(月) 23:12:39
>>43
以下の関数を使う。
int ListView_GetColumnMargin(HWND hwnd) { return 4; }

ListView_GetColumnMargin はおおよそのマージンを返します。
45デフォルトの名無しさん:2008/06/09(月) 23:45:33
>>44
これはひどい
46デフォルトの名無しさん:2008/06/09(月) 23:49:56
ワロタ
4744:2008/06/10(火) 00:18:38
すまん間違えた。
int ListView_GetColumnMargin(HWND hwnd) { return 6; }

>>45-46
一応マジレスなんだが。
正確には GetSystemMetrics(SM_CXEDGE) * 3 らしいが。
48デフォルトの名無しさん:2008/06/10(火) 00:26:55
こいよ、ベネット
49デフォルトの名無しさん:2008/06/10(火) 00:32:17
こいよ、ベネット
50デフォルトの名無しさん:2008/06/10(火) 00:44:55
>>42
AW_ACTIVATEは非表示状態から表示させるもので、Restoreさせるものではないから。
5138:2008/06/10(火) 01:37:26
>>50
なるほど!
ということは、Restoreさせた後にウィンドウのアニメーションをさせたい場合は、
独自メッセージを飛ばす必要があるのでしょうか?
それともRestoreされたことを通知するメッセージがあるのでしょうか?

WM_ACTIVEをキャッチすることも考えたんですが、
Restoreされたときだけを抜き出す方法が思いつかなかったのでアドバイスお願いします。

また、アニメーションさせるとき1度SW_HIDEで非表示にしてAW_ACTIVATEで表示させるという流れでいいのでしょうか
52デフォルトの名無しさん:2008/06/10(火) 03:43:33
少しは自分で調べろ
53デフォルトの名無しさん:2008/06/10(火) 06:09:59
>>47
間違っています。
以上。
はい次の方。
54デフォルトの名無しさん:2008/06/10(火) 08:00:26
>>53
間違ってないよ
知らないならレスしないでね
55デフォルトの名無しさん:2008/06/10(火) 08:03:19
Win32APIによるファイルの入出力を実装しています.
入出力自体はできた(と思う)のですが,最後の
CloseHandle(hFile); の戻り値を HRESULT result としてデバッガで
追いかけてみると, 正常終了したはずなのに S_FALSE が返ってきます.
下記のサイトのサンプルでも試してみたのですが,同じでした.
同様の問題をご存知の方がいらっしゃいましたら教えて下さい.

http://wisdom.sakura.ne.jp/system/winapi/win32/win113.html

56デフォルトの名無しさん:2008/06/10(火) 08:05:40
CloseHandleの戻り値の型はBOOL。
0が偽(失敗)で、それ以外の値は真(成功)。

ちなみにS_FALSEの値ははたしか1のはず。
5755:2008/06/10(火) 08:40:38
>> 56
すみません.
調べてみたらその通りでした.

CloseHandle() で F1 押して
CBlobCache::CloseHandle
の説明を見てました.

それにしても, 戻り値の 1, 0, -1
の区別は統一性が無いですね.
(自分が知らないだけで良い覚え方とかあるのかな.)
素早い返信ありがとうございました.
さすが2ch.

58デフォルトの名無しさん:2008/06/10(火) 09:08:46
Win32APIは統一性の無さがウリ
59デフォルトの名無しさん:2008/06/10(火) 09:58:59
HRESULTはCOMまわり
60デフォルトの名無しさん:2008/06/10(火) 10:05:17
>>56
それ、せめてMSDNには "戻り値はTRUE, FALSE" って書いてほしい
戻り値がnonzeroとか書かれると、if文で戻り値を判定するときにそういう条件文を書くべきなのか迷う
61デフォルトの名無しさん:2008/06/10(火) 10:13:43
いや、最初からC/C++のifその他の判定は0か非0かだろ
62デフォルトの名無しさん:2008/06/10(火) 10:24:00
if (Hoge() == TRUE)
なんてやってる人のコードは信用できないよな
63デフォルトの名無しさん:2008/06/10(火) 10:40:28
BOOLでTRUE/FALSE以外を返す関数の方が信用できない
どういう設計なんだよ
64デフォルトの名無しさん:2008/06/10(火) 10:48:10
おっとGetMessageの悪口はそこまでだ
65デフォルトの名無しさん:2008/06/10(火) 10:54:53
所詮はDWORDさ。
6660:2008/06/10(火) 11:28:06
>>62
そういうコードを書きたくないから言ってるんだよ…

BOOLを戻すと宣言してあるなら、それ以上の判定は必要ないのはわかるよ。実際書かないし。
nonzero(数値)を戻すなら、せめて "ブール値の真として..." くらい書いてくれないかなってこと

CのAPIである以上、数値のnonzeroとブール値の真は同じだからどっちが書いてあっても気にするなってことなのかな
67デフォルトの名無しさん:2008/06/10(火) 11:44:39
Cの特徴だしな
68デフォルトの名無しさん:2008/06/10(火) 11:57:25
>CのAPIである以上、数値のnonzeroとブール値の真は同じだからどっちが書いてあっても気にするなってことなのかな
間違いだらけだ。
6960:2008/06/10(火) 12:13:01
>>68
マジか
規格の少なくともifやwhileの項にはブール値なんて存在しないとかそういうこと?
70デフォルトの名無しさん:2008/06/10(火) 12:45:31
C++ならboolがあるが、C99でないCにブール値なんて概念自体存在してるのか?
71デフォルトの名無しさん:2008/06/10(火) 13:00:18
>>70
ブール値の概念は存在しているが規格には書かれていない ってところかな
72デフォルトの名無しさん:2008/06/10(火) 15:45:32
初歩的な質問なのですが、CreateWindowExでボタンを作りました。
そのボタンにアクセラレータ?(SHIFT+'A')をつけたいのですが、
CreateWindowExで作成したボタンにアクセラレータをつけるにはどうすればいいのでしょうか?
環境はVC+SDKです。よろしくお願いします
73デフォルトの名無しさん:2008/06/10(火) 15:49:07
>>72
CreateAcceleratorTable
7472:2008/06/10(火) 17:07:40
>>73
レスありがとうございます。
CreateAcceleratorTableで作った場合、
ボタンアクションがありません ><。
75デフォルトの名無しさん:2008/06/10(火) 17:16:00
BM_CLICKでも投げとけ
76デフォルトの名無しさん:2008/06/10(火) 17:18:48
>>74
まさかとは思うが、「ボタン(A)」(Alt+A)のことじゃないだろうな?
こっちはボタンのキャプションを「ボタン(&A)」にすれば勝手に機能するぞ。
77デフォルトの名無しさん:2008/06/10(火) 17:23:27
アクセラレータは発動したときにあくまでWM_COMMANDを発行するものであって、
ボタンのクリックをシミュレートするものではない。
78デフォルトの名無しさん:2008/06/10(火) 17:34:29
>>66
Win95で適当に試した結果

EnableWindow(hwnd, TRUE) で成功するとTRUEではなく 8 が返ってくる。
EnableWindow(hwnd, 0x10000) は失敗する。(下位16ビットしか見ていないらしい)

GetWindowRect(hwnd, &rect) で成功するとTRUEではなく 500 〜 599 が返ってくる。
ShowWindow(hwnd, SW_SHOW) で直前に表示されているとTRUEではなく 16 が返ってくる。

こういう謎な仕様は9x系で終わっていてほしい。
とりあえず上のAPIはNTでは大丈夫っぽいが。
79デフォルトの名無しさん:2008/06/10(火) 17:35:43
76が正解の予感
80デフォルトの名無しさん:2008/06/10(火) 17:37:41
TranslateAcceleratorしてないだけだろ
81デフォルトの名無しさん:2008/06/10(火) 17:45:39
>>78
APIのリファレンスに、引数はTRUE/FALSEを指定するとある。
zero/nonzeroとは書いてない。

戻り値は、zero/nonzeroと書いてある。
TRUE/FALSEを返すなんて書いてない。

説明は正しい。
82デフォルトの名無しさん:2008/06/10(火) 17:54:05
>>81
>>78は、仕様がおかしいって言いたいんだろ?
83デフォルトの名無しさん:2008/06/10(火) 17:58:44
>>81
説明の正しさ、じゃなくてBOOLなのにTRUE/FALSE以外を返すなということ。
GetMessageのように意味があってTRUE/FALSE以外を返すわけでも無さそうだし。
84デフォルトの名無しさん:2008/06/10(火) 18:27:39
Win16のときの、1バイトでも節約、て状況のせいなのかもな。
そして互換性のためにうっかり変えられない、と。
85デフォルトの名無しさん:2008/06/10(火) 18:30:17
8や500を返すのが互換性ってのもおかしな話だなぁ
86デフォルトの名無しさん:2008/06/10(火) 18:33:22
if(GetOpenFileName(&ofn) == IDOK) { 〜 } とか書いてたら正常動作していたので間違いに気付かなかった事ならある
8772:2008/06/10(火) 18:37:18
>>75-77 >>79-80
レスありがとうございます
>>77 が僕が今詰まってる問題に一番近いっぽいです ><。
アクセラレータは動いてるのですが、ボタンシミュレートが問題です。
88デフォルトの名無しさん:2008/06/10(火) 18:38:51
だからSendMessage(hButton,BM_CLICK,0,0)でいいだろうが
8972:2008/06/10(火) 18:52:00
>>88
おおっ
ボタンシミュレートできました
>>88さん、どうもです。感謝ですー ><。
90デフォルトの名無しさん:2008/06/10(火) 19:48:36
人の話を聞かない性格の典型的パターンだな
91デフォルトの名無しさん:2008/06/10(火) 23:50:18
>>83
実装効率を考えると真の際 TRUE 以外の値を返した方がいい場合もある。
TRUE しか返さない、としてしまうと、その効率のいい実装が取れなくなってしまう。
例えば is 系関数の戻り値を戻り値にしたい場合とか。
is 系関数はメモリ効率のため全ての関数で1つのテーブルを共有し、
ビット演算を使ってそれぞれの関数の戻り値を決めるよう実装されている場合がある。
int isalpha(int letter) { return table[letter] & 1; }
int isdigit(int letter) { return table[letter] & 2; }
int isalnum(int letter) { return table[letter] & 3; }
みたいな感じで。
こういう関数を戻り値に直接指定したい場合とか、0/1 にならないことがある。

そして、果たして BOOL の戻り値を作成する際に使った関数が
全て真偽を 0/1 で返すと確かめることはできるだろうか?
もしかしたら急に仕様が変えられるかもしれない。
それを考えて常に isalpha(ch) ? TRUE : FALSE のように書く事はできるかもしれないけど、
無駄も多いし書き忘れるミスを犯す事もあるだろう。
結局、bool 型のように true/false の2値性を保証する型で typedef されていない以上、
BOOL は 0/1 の2値性を保証しない方が安全ということになる。

TRUE や FALSE は真偽値を与える箇所で
条件式を書く事無くダイレクトに真か偽かを指定するために使う物であって、
比較に使う物ではない。
そもそも真偽値をさらに比較するという発想自体が
二度手間の無駄な発想としか言いようが無い。
92デフォルトの名無しさん:2008/06/10(火) 23:53:36
C言語なんだから0/1じゃなくて
0/非0で考えろ
93デフォルトの名無しさん:2008/06/11(水) 00:28:41
C言語で考えるとむしろ0/1じゃね?
比較とかの評価結果は0/1で返すと決まってるし。
どちらかというと、アセンブラレベルの話だな。

BOOLを0/1へ変換するなら !!value で一応はできるな。
見た目が宜しくないのでお勧めはしないけど。
94デフォルトの名無しさん:2008/06/11(水) 00:31:39
HTMLを解析したいのでIHTMLDocument2を使おうと思っています

CComPtr<IHTMLDocument2> aDoc;
aDoc.CoCreateinstance(CLSID_HTMLDOCUMENT);
aDoc->put_URL(CComBSTR("http://~")); //URLの読み込み(のつもり)
aDoc->get_images()


この put_URL を使うとブラウザで引数のURLを開いてしまい、また、get_imagesで取得したイメージコレクションのサイズが0になっています。
まず、「ブラウザを開かないでHTMLを解析したい」のと、「get_images で取得できていない」理由がよく解りません。

コマンドラインから使うツールのつもりなのでCUIの方がうれしいのですが、ダイアログかなにかで表示させる必要があるのでしょうか?
#イメージとしてはURLを引数で渡すとそのページのIMG src="***" を抽出するプログラムです。
95デフォルトの名無しさん:2008/06/11(水) 00:38:26
>>93
条件式は 0/1 を返すが、
if 文や while 文などの中身は 0/非0 で判定するから
C で考えるなら 0/非0 だな。
96デフォルトの名無しさん:2008/06/11(水) 00:50:47
>比較とかの評価結果は0/1で返すと決まってるし。
処理系依存
97デフォルトの名無しさん:2008/06/11(水) 00:52:54
↑馬鹿
98デフォルトの名無しさん:2008/06/11(水) 02:58:43
はあぁ?
99デフォルトの名無しさん:2008/06/11(水) 03:00:22
妄想は日記の中でしてね。
100デフォルトの名無しさん:2008/06/11(水) 08:44:32
馬鹿かお前
Win32なんて基本的に妄想が中心だろ
MSDNに載ってないような事をしたければ妄想するしかないし
101デフォルトの名無しさん:2008/06/11(水) 08:45:32
↑馬鹿
102デフォルトの名無しさん:2008/06/11(水) 09:56:18
↑阿呆
103デフォルトの名無しさん:2008/06/11(水) 10:03:46
↑馬鹿
104デフォルトの名無しさん:2008/06/11(水) 10:07:05
↑阿呆
105デフォルトの名無しさん:2008/06/11(水) 10:08:20
↑馬鹿
106デフォルトの名無しさん:2008/06/11(水) 10:08:55
↑ば、馬鹿じゃないのっ
107デフォルトの名無しさん:2008/06/11(水) 10:10:01
↑阿呆
108デフォルトの名無しさん:2008/06/11(水) 10:21:25
↑あ、阿呆じゃないのっ
109デフォルトの名無しさん:2008/06/11(水) 10:25:26
↑馬鹿
110デフォルトの名無しさん:2008/06/11(水) 10:26:12
↑ば、馬鹿じゃないのっ
111デフォルトの名無しさん:2008/06/11(水) 10:33:12
訳:かまってほしいな
112デフォルトの名無しさん:2008/06/11(水) 10:36:37
かまってほしくない人はレスしないでください
113デフォルトの名無しさん:2008/06/11(水) 10:39:16
>>94
IHTMLDocument2 を使うことが絶対条件なの?
114デフォルトの名無しさん:2008/06/11(水) 12:32:55
必要条件
115デフォルトの名無しさん:2008/06/11(水) 12:36:22
BOOLを返すAP(Iは必ず

bool Successed = Hoge(...) != 0;

としてる。
116デフォルトの名無しさん:2008/06/11(水) 12:40:17
だから?
11760:2008/06/11(水) 12:57:43
ちょっとした愚痴のつもりだったんだが…
いまさらMSDN書き替えられても困るし


で、結局>>68の指摘してる間違いってなんなんだ?
すごく気になるんだけど
118デフォルトの名無しさん:2008/06/11(水) 13:06:50
単なるかまって厨でFA
119デフォルトの名無しさん:2008/06/11(水) 13:13:40
120デフォルトの名無しさん:2008/06/11(水) 14:21:09
>>68の指摘は分からんが、CのAPIではないなw
API自体は言語関係ないからね。
そう考えると、Cの文法や流儀を元に議論するのはナンセンスかもしれん。
121デフォルトの名無しさん:2008/06/11(水) 14:31:32
馬鹿だなあ
文字列がナルターミネートな時点でC前提だろ
122デフォルトの名無しさん:2008/06/11(水) 14:35:03
↑馬鹿
123デフォルトの名無しさん:2008/06/11(水) 14:54:48
↑阿呆
124デフォルトの名無しさん:2008/06/11(水) 14:58:36
呼び出し規約そのものは、cdeclとpascalの中間だけど
まあC用だな、他の言語はそれにあわせてるだけ。
125デフォルトの名無しさん:2008/06/11(水) 15:05:18
そもそもwin32API自体がCで書かれているのだからC前提で当然
そんな事もわからない素人が増えちゃったんだね・・・
126デフォルトの名無しさん:2008/06/11(水) 15:17:41
↑馬鹿
127デフォルトの名無しさん:2008/06/11(水) 15:19:19
↑阿呆
128デフォルトの名無しさん:2008/06/11(水) 15:20:51
↑馬鹿
129デフォルトの名無しさん:2008/06/11(水) 15:21:36
馬鹿も阿呆も漏れだけでいい
130デフォルトの名無しさん:2008/06/11(水) 15:29:14
↓馬鹿
131デフォルトの名無しさん:2008/06/11(水) 15:29:52
え?おれも?
132デフォルトの名無しさん:2008/06/11(水) 15:41:59
まとめ:かまってほしいな
133デフォルトの名無しさん:2008/06/11(水) 15:53:55
(・ω・` )ヾ(・ω・* )ネェネェ カマッテヨ
134デフォルトの名無しさん:2008/06/11(水) 16:34:53
「↑馬鹿」と「↑阿呆」はそれぞれ同一人物による書き込み
つまり荒らしは2名
135デフォルトの名無しさん:2008/06/11(水) 16:51:30
↑はずれ
136デフォルトの名無しさん:2008/06/11(水) 17:02:54
1人だったのか
137デフォルトの名無しさん:2008/06/11(水) 17:06:37
↑はずれ
138デフォルトの名無しさん:2008/06/11(水) 17:15:14
答え:多重人格(一人)
139デフォルトの名無しさん:2008/06/11(水) 17:23:45
↑はずれ
140デフォルトの名無しさん:2008/06/11(水) 17:43:15
現在の稼動状況
人格1: >>135
人格2: >>137
人格3: >>139
人格4〜16: Idle

最大16人格まで拡張可能
それぞれの人格は並列動作
(例えば人格1から人格2〜16のレスを見ても同一人物であるという認識は本人には無い)
記憶装置(脳)は16人格で共有されるため、正常な人間に比べて人格それぞれの知識は16分の1
141デフォルトの名無しさん:2008/06/11(水) 17:54:06
>>140みたいな事を平気で書き込めちゃう奴って本気で近づきたくない
142デフォルトの名無しさん:2008/06/11(水) 17:57:37
↑馬鹿
143デフォルトの名無しさん:2008/06/11(水) 18:01:29
↑阿呆
144デフォルトの名無しさん:2008/06/11(水) 18:06:05
ビリーミリガンよりは少ないな
145デフォルトの名無しさん:2008/06/11(水) 18:20:27
かまってほしいな
146デフォルトの名無しさん:2008/06/11(水) 18:43:19
(・ω・` )ヾ(・ω・* )ネェネェ カマッテヨ
14794:2008/06/11(水) 18:45:28
>>113
> >>94
> IHTMLDocument2 を使うことが絶対条件なの?

いえ、HTMLの解析が簡単にできればIHTMLDocument2でなくても問題ないです。
MSDNの中を探してたらそれらしいメソッドがIHTMLDocument2に見つかったので使っている所です。

ブラウザを開かないのはIHTMLDocument4::CreateDocumentFromURLを使えばいいのかなぁ
148デフォルトの名無しさん:2008/06/12(木) 00:36:01
>>147
もし、htmlソースが文字列として得られるのなら、
・空のドキュメントにhtmlをwriteしてDOMを作ったことはあるなあ。
・普通に文字列処理で何とかするのも手。
・TidyとかでXHTMLにしてXMLパーサに読ませるとか。

URLがあるんなら、そういう時のためのいいやり方が別にあるような気はするけど。

あと、こっちのスレの方が詳しいかもしれない。
 IEコンポーネントを使い倒すスレ Ver.2
 http://pc11.2ch.net/test/read.cgi/tech/1145189322/
149デフォルトの名無しさん:2008/06/12(木) 02:24:06
>>147
用途が分からないから判断が難しいけど、

IHTMLDocument2だとブラウザは開くねぇ。隠したとしても音が残る。
XMLパーサーだと規約に沿ってないとエラーになる。

簡単なのはWinInetを使って、正規表現を使って解析することかなぁ。
150デフォルトの名無しさん:2008/06/12(木) 03:14:42
>>149
APIフックして音を消せば?ってのがこのスレ的な回答かな
151デフォルトの名無しさん:2008/06/12(木) 07:03:47
全角半角キーをスイッチのように使いたいのですが
押しても全角モードに切り替わらない良い方法はありませんか
152デフォルトの名無しさん:2008/06/12(木) 12:21:13
フック
153デフォルトの名無しさん:2008/06/12(木) 14:41:05
>>152
詳しく
154デフォルトの名無しさん:2008/06/12(木) 14:53:39
クック
155デフォルトの名無しさん:2008/06/12(木) 15:06:35
ドゥ
156デフォルトの名無しさん:2008/06/12(木) 15:16:20
訳:かまってほしいな
157デフォルトの名無しさん:2008/06/12(木) 15:20:03
訳:ググレ
158デフォルトの名無しさん:2008/06/12(木) 15:33:13
いちごみるくうめぇ
159デフォルトの名無しさん:2008/06/12(木) 15:45:14
ヾ(@⌒¬⌒@)ノ ウマヒィ
160デフォルトの名無しさん:2008/06/12(木) 16:49:07
社会から自分が必要とされていないのではないかと思っているから荒らす
少しでも反応があれば自分は必要とされているんだと勝手に勘違いして納得する
それがかまってちゃん

こうして俺たちがかまってあげているうちは街中で無差別殺人なんてしないだろうから
人助けの一つだと考えて適当に相手してあげておいた方がいいかもな
161デフォルトの名無しさん:2008/06/12(木) 16:54:19
>>160
こうですか!わかりません><
162デフォルトの名無しさん:2008/06/12(木) 16:55:35
探すのが面倒だから荒らすんですね(>ω<
163デフォルトの名無しさん:2008/06/12(木) 18:52:04
フックについてググってもvbやらdelphiやらc++やらapiやら混在してる割に
ヒット数が意外と少ないんですがとりあえず
SetWindowsHookEx WH_KEYBOARD WM_INITDIALOG
あたりを使う方法でいいのでしょうか?
164デフォルトの名無しさん:2008/06/12(木) 18:53:22
最後は関係ない希ガス
165デフォルトの名無しさん:2008/06/12(木) 19:20:16
>>164
どうもです。そのものずばりの情報はなかなか見つかりませんね。
範囲があまりにも広いのですが絞るとほとんどhitせず・・・もう少し調べてみます
166デフォルトの名無しさん:2008/06/12(木) 21:02:18
動的に追加したリストボックスをDestroyWindow()する時に予めLB_RESETCONTENTする必要はありますか?
167デフォルトの名無しさん:2008/06/12(木) 21:14:24
>>166
deleteする時に予めデストラクタを呼んでおく必要はありますか?
って聞いてるようなモンだぞ
168デフォルトの名無しさん:2008/06/12(木) 21:26:55
>>167
DestroyWindow()するだけで良いのですね。
ありがとうございました。
169デフォルトの名無しさん:2008/06/12(木) 21:52:18
スレ違いのような気もするけど、気にせず教えてください。

kbdacc とか 秀Caps のようなキーリピートの高速化ってどうやって実現してるんでしょうか?
SystemParametersInfo で設定できる値よりずっと速くできるようですが。
170デフォルトの名無しさん:2008/06/12(木) 22:15:27
>>165
自プロセスへのフックは簡単だと思うけど‥‥他プロセスやグローバルフックになると共有メモリとかの処理が必要になってくるけど
171デフォルトの名無しさん:2008/06/12(木) 22:17:16
>>169
気にせず教えてください…?頭わいてんのか?
172デフォルトの名無しさん:2008/06/12(木) 22:29:33
お忙しい中すみませんが、気にせず教えてください。
173デフォルトの名無しさん:2008/06/12(木) 22:33:16
教えを乞う言葉じゃない気がしますが、気にせず教えてください。
174デフォルトの名無しさん:2008/06/12(木) 22:54:35
>>169
ずっと速くできるようですが気にせず設定してください
175デフォルトの名無しさん:2008/06/12(木) 23:12:31
流れがおかしいようですが気にせず質問してください
176デフォルトの名無しさん:2008/06/12(木) 23:15:39
ツールバーの表示位置を変えたいのですが、どのようにすればいいですか?
177デフォルトの名無しさん:2008/06/12(木) 23:21:10
movewindow
178デフォルトの名無しさん:2008/06/13(金) 00:14:46
>>177
レスありがとうございます。
後一つわからないことがありまして、
ツールバーの高さを変えるにはどうすればいいですか?
179デフォルトの名無しさん:2008/06/13(金) 00:15:13
>>177
APIの大文字小文字は区別されます。嘘を書くのをやめましょう。
180デフォルトの名無しさん:2008/06/13(金) 00:16:35
>>178
ボタンを大きくする
181デフォルトの名無しさん:2008/06/13(金) 00:28:58
>>180
ありがとうございます。
御礼に私の集めた女子高生画像10枚ほどぅpしようと思うのですが
182デフォルトの名無しさん:2008/06/13(金) 00:33:42
183デフォルトの名無しさん:2008/06/13(金) 01:00:03
>>181-182
偽者&自作自演乙
184デフォルトの名無しさん:2008/06/13(金) 01:10:32
↑はずれ
185デフォルトの名無しさん:2008/06/13(金) 01:13:02
http://mbup.net/p.php?p=44502.jpg
http://mbup.net/p.php?p=44503.jpg
こんな感じのでよいでしょうか?
186デフォルトの名無しさん:2008/06/13(金) 01:36:20
訳:かまってほしいな
187デフォルトの名無しさん:2008/06/13(金) 02:35:45
>>186
かまってほしいです。
実のところMoveWindowでツールバーの移動が出来ませんでした。
188デフォルトの名無しさん:2008/06/13(金) 02:55:07
自プロセスのUIスレッドのIDを取得したいのですが、方法はありますかね?
189デフォルトの名無しさん:2008/06/13(金) 03:12:29
>>188
ググッたらその辺のサンプルは、見つかると思うよ
190デフォルトの名無しさん:2008/06/13(金) 05:09:14
ツールバー移動出来ない……
クローズボタンなんかだと移動出来てるぽいから出来ると思うのですが…
191デフォルトの名無しさん:2008/06/13(金) 10:24:01
Windows Media Playerの埋め込みについて質問させてください。

親ウィンドウ(レイヤードウィンドウ)にメディアプレイヤーを埋め込んでいるのですが、
WS_EX_Layeredで親ウィンドウを生成し、SetLayeredWindowAttributesで透明度を設定すると、
メディアプレイヤーの動画部分が黒く表示されます(再生はされているみたいです)
親ウィンドウを動かしてみると、一瞬だけ動画が表示され、動かすのをやめるとまた消えてしまいます。
これはどういった原因があるでしょうか。
親ウィンドウをレイヤードウィンドウにしなかった場合は、そのまま表示されます。
192デフォルトの名無しさん:2008/06/13(金) 11:24:59
WS_CLIPCHILDRENとかその辺?
193デフォルトの名無しさん:2008/06/13(金) 11:28:43
タブのグレイ表示ってできないんですか?
194デフォルトの名無しさん:2008/06/13(金) 13:57:22
195デフォルトの名無しさん:2008/06/13(金) 14:12:25
聞きたいのは、何故ツールバーをMoveWindowで移動出来ないのか
です。
196デフォルトの名無しさん:2008/06/13(金) 15:19:53
最近、いろいろなサイトでTEXT("aaa");見たいなの見かけますが
文字型charには代入できなくなったのですか?新しい型?
197デフォルトの名無しさん:2008/06/13(金) 15:21:14
意味不明
198デフォルトの名無しさん:2008/06/13(金) 15:27:26
TEXT("aaa")とか_T("aaa")は、ユニコード対応だったけか?
ググれば、その辺はすぐ見つかるよー
199デフォルトの名無しさん:2008/06/13(金) 15:28:16
最近のVC++はデフォがUnicode版API使うようにマクロ定義さてるんじゃなかったっけ?
2003で止まってるから知らんが。
200デフォルトの名無しさん:2008/06/13(金) 15:39:25
WM_KEYUPでwParamと数値を比較すると警告メッセージがでるのですが
wParamをintでキャストするような方法でいいのでしょうか
201デフォルトの名無しさん:2008/06/13(金) 15:40:25
おk
202デフォルトの名無しさん:2008/06/13(金) 15:41:20
>>201
秒殺レスさんくす
203デフォルトの名無しさん:2008/06/13(金) 16:05:45
>>191
WMPが動画をオーバーレイで表示してるなら、不思議な挙動ではないな。
ビデオオーバーレイは画面上のビデオ表示領域にあるピクセルが特定の色だった場合に、そのピクセルに動画を表示する。
よって半透明にした結果、そのピクセルの色が変わってしまえば動画が表示されなくてもおかしくはない
204デフォルトの名無しさん:2008/06/13(金) 16:20:56
なかなか深い読みだな
205デフォルトの名無しさん:2008/06/13(金) 16:27:34
>>203
アプリの背景色をその色にすると面白い事になるよね
206デフォルトの名無しさん:2008/06/13(金) 16:32:23
自己解決しちゃったぜ!!?
気分がいいので
今から写メを20枚ぅpしてやんよ!!!
207デフォルトの名無しさん:2008/06/13(金) 16:50:01
208デフォルトの名無しさん:2008/06/13(金) 16:54:40
基地外が沸いてるな
209デフォルトの名無しさん:2008/06/13(金) 17:53:16
>>191
WMPでオーバーレイを使わない設定にすれば見えなくなることはなくなるけど、透けないしちらつくんだよな。
210デフォルトの名無しさん:2008/06/13(金) 20:52:48
ツールチップをCreateWindowEx()してTOOLINFO構造体のlpszTextにLPSTR_TEXTCALLBACKを指定した後、

case WM_NOTIFY:
switch (((LPNMHDR)lp)->code)
{
case TTN_NEEDTEXT:
LPTOOLTIPTEXT ptt = (LPTOOLTIPTEXT)lp;
lstrcpy(ptt->lpszText, 表示するテキスト);
break;

default:
return FALSE;
}

とすると、数十字程度の場合は正常に動作しますが、300文字等文字数を増やすとデバッグ実行時でもエラーが出ずに突然落ちてしまいます。
原因は何でしょうか。
因みにTTM_UPDATETIPTEXTでは正常に動作しました。

>>196
所謂TCHAR型だから、プロパティでマルチバイトを選択すればchar、Unicodeを選べばwchar_tとコンパイラは解釈する。
211デフォルトの名無しさん:2008/06/13(金) 21:18:19
TTN_NEEDTEXT 通知メッセージを処理する場合は、表示する文字列を次のいずれかの方法で指定します。

szText メンバで指定したバッファにテキストをコピーする。

テキストが入っているバッファのアドレスを lpszText メンバにコピーする。

文字列リソースの識別子を lpszText メンバにコピーし、そのリソースが入っているインスタンスのハンドルを hinst メンバにコピーする。

MSDNくらいちゃんと確認汁
212デフォルトの名無しさん:2008/06/13(金) 21:24:54
>>210
バッファオーバーラン

今時そんなバグを平気で出しちゃうCプログラマは
偉そうにTCHAR型の講釈している場合じゃないよ
213デフォルトの名無しさん:2008/06/13(金) 21:25:28
俺も>>211 が正解な気がする
214デフォルトの名無しさん:2008/06/13(金) 21:31:45
タスクの切り替え(アクティブウィンドウを切り替える)のをエミュレートしたいんですけどどうすればいいですかね?

ある条件を満たしたとき、(タスクバーの)(右)隣のウィンドウに切り替えたいんですけど。

Alt+Tabのキーボードエミュレートだと、直前のやつにしか切り替え不可ですよね・・?
Tabの押す回数をうまく制御すればいいんですかね?
他にもっとスマートな方法ありますか??

あと、上記のような不特定多数のタスクがある状況で動くものと、
特定の(例えばWMPとか、決まったアプリをアクティブにする)をアクティブにするものも知りたいです。
ちなみにC++(VC2008ExpressEdition)です。
ご教授のほどお願いします。
215デフォルトの名無しさん:2008/06/13(金) 21:36:05
>>214
FindWindow
GetWindowThreadProcessId
SetActiveWindow
SetForegroundWindow
216デフォルトの名無しさん:2008/06/13(金) 21:36:28
>>210
80文字分しかないバッファに300文字コピーしたら
バッファオーバーランするに決まってるだろ。
217デフォルトの名無しさん:2008/06/13(金) 22:08:45
(誰が決めたのだろう・・・?)
218デフォルトの名無しさん:2008/06/13(金) 22:09:50
219デフォルトの名無しさん:2008/06/13(金) 22:11:45
そいやXPのPowerToyのAlt+TAB乗っ取りプログラムはWS_EX_TOOLWINDOWとかマスクしてなくてPhotoshopとか起動してるとかなり格好悪いことになるんだよな。
220デフォルトの名無しさん:2008/06/13(金) 22:31:36
>>215
単純明快かつわかりやすい回答、ありがとうございます。
221デフォルトの名無しさん:2008/06/13(金) 22:34:57
どういたしまして
222デフォルトの名無しさん:2008/06/13(金) 22:39:30
>>221
騙りウザイ
223デフォルトの名無しさん:2008/06/13(金) 22:40:53
>>192
>>203
>>209
埋め込んだメディアプレイヤーを透明にするということは難しいということですね。。
別の方向で検討します。
レスありがとうございました。
224デフォルトの名無しさん:2008/06/13(金) 22:45:30
どういたしまして
225214:2008/06/13(金) 22:48:41
すいません、また質問させてください。
>>215でプロセスIDを習得する意味は何でしょうか?
226デフォルトの名無しさん:2008/06/13(金) 22:49:29
習得?
227デフォルトの名無しさん:2008/06/13(金) 22:54:07
取得、です。
228デフォルトの名無しさん:2008/06/13(金) 22:55:29
同じプロセスで動いてるやつを飛ばすとか?
229デフォルトの名無しさん:2008/06/13(金) 23:10:01
>>225
> 例えばWMPとか、決まったアプリをアクティブにする
とあったので、特定のアプリをアクティブにするならプロセスIDから逆引きすればいいよってこと。
230デフォルトの名無しさん:2008/06/13(金) 23:43:22
GDIのPolygon関数は、与えられた引数によっては交差した図形を描くのですが、
どんな引数を与えられても交差しない図形を描くことは出来ないのでしょうか。
231デフォルトの名無しさん:2008/06/13(金) 23:56:05
>>230
交差しない順で自分で頂点を並べればいいだろう。
ちょっと考えれば、順不同で与えられた頂点から、辺が交差しない図形は
一意で求まらないことくらい分かりそうなもんだが。
232デフォルトの名無しさん:2008/06/13(金) 23:56:42
そんなAPIがあることを初めて知った。。。

質問の意味はよくわからんが、細かく制御したいなら自分でやれば。
233デフォルトの名無しさん:2008/06/14(土) 00:10:18
分からないならレスしないでください
234デフォルトの名無しさん:2008/06/14(土) 00:22:14
>>191のやつをVista DWM有効下で動かすとどうなるんだろうと気になった。
235デフォルトの名無しさん:2008/06/14(土) 00:29:56
オーバーレイは使えないが、動画は表示され、ちらつきも無くなって万々歳と予想
236デフォルトの名無しさん:2008/06/14(土) 00:36:56
それってXPで出力をVMR9にしたのと同じような状況じゃねーの?
237デフォルトの名無しさん:2008/06/14(土) 00:46:13
個人的に、レイヤードウィンドウとDWMの違いがハッキリしないんだけど。
レイヤードウィンドウでもWM_PAINTがほとんど飛んでこなくなるし、DirectXベースっぽいし。

思うに、レイヤードウィンドウがDX7だったのに対してDWMがDX9になっただけな気がする。
もちろん色々と変わってるだろうけど(GDIをソフトレンダラ化とか)、DWMでやってる事って
半分ぐらいはWindows2000で既に実現できていたんじゃないのかなぁ。
238214:2008/06/14(土) 01:21:17
あーできません助けてください!

「今アクティブなウィンドウ(アプリ)の、“タスクバーにおける(右)隣”のウィンドウへアクティブを移す」を実現したいのですが、
要はこれって「タスクバーでいうと隣」のウィンドウのハンドルを取得、それを使ってアクティブにすればいいんですよね?

だけど「タスクバーで隣」っていうのをどう条件設定すればよいのかわからず・・・。タスクバーを右に右に推移(+右端だったら左端に動くように)させたいのですが・・。

なんかヒントください!
239デフォルトの名無しさん:2008/06/14(土) 01:25:08
>>238
タスクバーをフックする


そして次のバージョンのWindowsで死亡
240デフォルトの名無しさん:2008/06/14(土) 08:27:48
fprintf等でUTF-8 LF形式で出力したいのですが、どうしてもできません。
どうかご教授おねがいします


FILE* fp;
_tfopen_s( &fp, _T("hoge.txt"), _T("w,ccs=UTF-8"));
fseek(fp, 0, SEEK_SET );
_ftprintf_s( fp, _T("hogehoge"));
_setmode( _fileno( fp ), _O_BINARY );
_ftprintf_s( fp, _T("\n"));
_setmode( _fileno( fp ), _O_TEXT );
_ftprintf_s( fp, _T("あいうえお"));
fclose(fp);

MSDN見る限りではこう作れってかいてあるのですが、どうも_setmodeの挙動がおかしいようで...
241デフォルトの名無しさん:2008/06/14(土) 09:14:00
どうせccs=UTF-8なんてVC++限定なんだから、
自分でメモリ上にUTF-8, LF改行のデータを作って、
ただのバイナリモードで一気に書きこんだらどうかと思う。

というかスレ違い。
242デフォルトの名無しさん:2008/06/14(土) 10:13:39
>>240
_setmode( _fileno( fp ), _O_U8TEXT);
243デフォルトの名無しさん:2008/06/14(土) 10:53:27
リッチエディットの背景に画像を表示したいのですが方法はあるのでしょうか?
ググってみても背景色の変更はあるのですが背景に画像を埋め込む方法は見つかりません。
244デフォルトの名無しさん:2008/06/14(土) 10:57:51
>>243
無理。IEコンポーネントでも使え
245243:2008/06/14(土) 11:01:49
やっぱりそうですか・・・。ありがとうございます。
246デフォルトの名無しさん:2008/06/14(土) 11:24:30
どういたしまして
247デフォルトの名無しさん:2008/06/14(土) 14:21:30
リッチエディットコントロールで右クリックしても
エディットコントロールと違って何も表示されないんだけど
どうすればいいんでしょか
248デフォルトの名無しさん:2008/06/14(土) 14:54:24
>>241

間違えてここに書いちゃいました。
C++相談室で聞いてきます。

>>242
実はこれはいろいろためしてたときのソースがそのまま残ってました。
_setmode( _fileno( fp ), _O_U8TEXT);
もすでに試してたけど、なぜかCRLFになるので、ダメでした。
249デフォルトの名無しさん:2008/06/14(土) 15:10:51
C++相談室もスレ違いだけどな
250デフォルトの名無しさん:2008/06/14(土) 15:20:35
・スレ違いの質問でも丁寧に答えてくれます。
・かまってちゃんの煽りにもきちんとかまってくれます。

をテンプレに追記汁
251デフォルトの名無しさん:2008/06/14(土) 15:45:05
CreateThreadで作成したスレッドがサスペンドになるまで待機するような関数はありませんか。
WaitForInputIdleのスレッド版、のようなモノです。

自前でフラグでも立てて調べ続けるしかないのでしょうか。
252デフォルトの名無しさん:2008/06/14(土) 15:50:57
訳:おしえてほしいな
253デフォルトの名無しさん:2008/06/14(土) 15:55:11
>>251
サスペンドにする設計はよしたほうがいい。
同期オブジェクトを使うべき。

254デフォルトの名無しさん:2008/06/14(土) 16:11:46
自前で Win32API のラッパーライブラリ作って使い回してる人どれくらいいます?
windowsx.h みたいなマクロの集合から本格的なクラスライブラリまで含めて。
255デフォルトの名無しさん:2008/06/14(土) 16:35:10
>>254
自分が使う分はラップしてから使う。
256デフォルトの名無しさん:2008/06/14(土) 16:53:37
そのコードにsetmodeは要らないと思うが。
257デフォルトの名無しさん:2008/06/14(土) 16:58:06
>>254
WTLでいいだろ
258デフォルトの名無しさん:2008/06/14(土) 17:35:31
WTLは糞すぎるんで、
自作の、ATLをラップしたテンプレートクラスライブラリでやってるよ。
259デフォルトの名無しさん:2008/06/14(土) 17:48:36
VCLで間に合ってます
260デフォルトの名無しさん:2008/06/14(土) 18:13:08
>>258
どう糞すぎるの?
261デフォルトの名無しさん:2008/06/14(土) 21:14:18
TCHAR[]な文字列のバイト数はどうやったら求められるのでしょうか
262デフォルトの名無しさん:2008/06/14(土) 21:15:27
あ、lstrlenでいけるっぽいですね。スレ汚しすみません。
263デフォルトの名無しさん:2008/06/14(土) 21:32:21
わかってるかもしれんけど、
「バイト数」は lstrlen(str) * sizeof(TCHAR) じゃないと求まらんよ
264デフォルトの名無しさん:2008/06/14(土) 21:33:36
>>263
おまい、優しいな
265デフォルトの名無しさん:2008/06/14(土) 21:35:55
strlenとlstrlenて何が違うんだ?ずっとstrlen使ってたんだけぢ
266デフォルトの名無しさん:2008/06/14(土) 21:36:19
引数の型が違う
267デフォルトの名無しさん:2008/06/14(土) 21:44:09
やっぱり違いが判らない

lstrlenのLPCTSTRって
strlenのconst char* と同じでしょ?
268デフォルトの名無しさん:2008/06/14(土) 21:45:39
#define UNICODE
269デフォルトの名無しさん:2008/06/14(土) 21:49:57
じゃあ
lstrlen=_tcslenなわけ?
270デフォルトの名無しさん:2008/06/14(土) 21:50:34
>>265
lstrlenはスレ違いじゃないけどstrlenはスレ違い
271デフォルトの名無しさん:2008/06/14(土) 21:54:04
_tcslenもスレ違い
272デフォルトの名無しさん:2008/06/14(土) 21:54:16
>>269
lstrlen (lstrlenA, lstrlenW) は Win32API (ダイナミックリンク)
_tcslen (strlen, wstrlen) は C Runtime (スタティックリンク)
この違い重要な
273デフォルトの名無しさん:2008/06/14(土) 21:56:17
> C Runtime (スタティックリンク)
馬鹿は黙っててね
274デフォルトの名無しさん:2008/06/14(土) 21:58:20
>>272
CRTもダイナミックリンクできるが?

つーか基本的にwsprintfとかlstrlenとかWin16でメモリが厳しくてCRTなんか使ってられるかって時代の遺物なんだから気にするな。使うな。
275デフォルトの名無しさん:2008/06/14(土) 22:06:41
Win32API はスタティックリンクできないが
C Runtime は普通スタティックリンクで使うので間違ってはいない
276デフォルトの名無しさん:2008/06/14(土) 22:09:08
>>275
VC8はダイナミックリンクがデフォ設定になってたなぁ
277272:2008/06/14(土) 22:34:54
>>276
あ、確かにデフォルトで /MD (msvcr80.dll) になってるわ
普段 cl.exe とか nmake.exe とかでやってるから libcmt.lib が当たり前だと思ってた

あと誰もつっこんでくれないけど wstrlen じゃなくて wcslen
また多分 strlen ぐらいならコンパイラがインライン展開してくれると思う
278デフォルトの名無しさん:2008/06/15(日) 00:23:16
msvcrt.dllはKnownDLLsだから、これを使うならCRTもWin32APIみたいな物じゃね
まーそのせいで最近のVC++はmsvcrt.dllが使用できないが
279デフォルトの名無しさん:2008/06/15(日) 01:08:48
リストボックスに横スクロールバーを追加したのですが、項目の文字列の幅を正確に取得出来ないのか全ての文字が表示される所までスクロール出来ません。

GetTextExtentPoint32()は

> デバイスの中には、通常のセル配列に文字を配置しないデバイス(すなわちカーニングを実行するデバイス)もあるため、文字列内の個々の文字のサイズの総計と文字列全体のサイズとが一致しないことがあります。

の解説から等幅しか正しく計算出来ないようですが、プロポーショナルフォントで正しく計算する方法はないのでしょうか。
※これとは別に垂直スクロールバー分のGetSystemMetrics(SM_CXVSCROLL)は足しています。
280デフォルトの名無しさん:2008/06/15(日) 01:18:08
その説明は関係ないだろ
(もし1文字分ずつ別々に測って足してったら正しい結果は出ないよって意味だ)
ちゃんとDCにフォントを選択したか?
281デフォルトの名無しさん:2008/06/15(日) 01:32:32
>>280
誤解を解いてくれてありがとうございます。

> DCにフォントを選択したか
選択したら、未選択の時より短くなってしまいました。

追加したコード

HFONT hFont = CreateFont(-MulDiv(9, GetDeviceCaps(hDC, LOGPIXELSY), 72), 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET, OUT_OUTLINE_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, VARIABLE_PITCH, L"MS UI Gothic");
SelectObject(hDC, hFont);



DeleteObject(hFont);
282デフォルトの名無しさん:2008/06/15(日) 02:50:21
>>281
それはリストボックスと同じフォントか?
というかWM_GETFONTでフォントもらえ
283デフォルトの名無しさん:2008/06/15(日) 11:24:09
>>282
遅レスすみません。
リストボックスのフォント(ダイアログのフォントと同じ)はMS UI Gothic 9ptですが、WM_GETFONTで取得したフォントは何故かArialの12pt(?)になっていました。
更にウィンドウ上の文字もそれに変わって表示が滅茶苦茶に…。
勿論Arialなんて何処にも使用していません。

何処に原因があるのか解らないので一度Win32APIから離れて.NETでGraphicsオブジェクトを作りMeasureString()で幅を取得してHorizontalExtentプロパティに設定したら、こちらは上手くいきました。

結局の所、正しいフォントが選択されていない事が最大の原因でしょうか。
そうだとしたら何故フォントが正しく取得出来ないのでしょうか。
284デフォルトの名無しさん:2008/06/15(日) 13:08:11
>>282
もらえるのはHFONTだが、それがArialだってのはどうやって調べた
(というか調べる必要があった)んだ? DCにハンドル選択するだけなのに。
本当にArialとやらだったら、取得に失敗してシステムフォントが返ってるんだろ。

他のウィンドウのフォントが崩れたのは、
このスレにコード念写できる人はおらんから確かなことは言えんが
おおかたもらったフォントをDeleteObjectでもしたんでないの。
285デフォルトの名無しさん:2008/06/15(日) 13:24:08
> それがArialだってのはどうやって調べた
ウィンドウに表示される文字で判別しました。

> もらったフォントをDeleteObjectでも〜
思い切りしていました…。
削除する事でフォントは正常に戻りましたが、やはり文字列の最後までスクロール出来ません。
文字コードは全てワイド文字で処理していますが、これが関係しているのでしょうか。
286デフォルトの名無しさん:2008/06/15(日) 13:48:23
> ウィンドウに表示される文字
それほど信頼できん調べ方はないだろうがw
フォントリンクとかでぐぐっとけよ
287デフォルトの名無しさん:2008/06/15(日) 13:52:08
>>285
あなたにWin32APIは無理です。
諦めて.NETを使いましょう。いい時代になりましたね。
288デフォルトの名無しさん:2008/06/16(月) 01:30:35
>>285
>ウィンドウに表示される文字で判別しました。
フォント名がほしいなら GetTextFace() とか使ってくれ

とりあえず GetTextExtentPoint32() のリファレンス読み直すとか、
DrawText() に DT_CALCRECT 渡すなどの方法で代用するとか
289デフォルトの名無しさん:2008/06/16(月) 07:54:20
Advanced Windows っていい本ですね
高いけど
290デフォルトの名無しさん:2008/06/16(月) 09:13:10
>>288
情報小出しする奴はスルーしとけ
291デフォルトの名無しさん:2008/06/16(月) 12:13:15
テキストエディタ作りたいんですけど、
どうやって日本語入力するんでしょうか?
292デフォルトの名無しさん:2008/06/16(月) 12:17:26
テキストボックスでも貼っとけ
293デフォルトの名無しさん:2008/06/16(月) 12:27:58
日本人なら日本語ぐらい入力できるだろ
294デフォルトの名無しさん:2008/06/16(月) 12:32:31
295デフォルトの名無しさん:2008/06/16(月) 12:40:26
>>292
すごく・・・
完了しました
296デフォルトの名無しさん:2008/06/16(月) 13:15:54
今時Edit貼っただけのテキストエディタなんて需要ゼロだろ
297デフォルトの名無しさん:2008/06/16(月) 14:25:39
コンソールで作るんだろ?
298デフォルトの名無しさん:2008/06/16(月) 14:29:25
SEDやEDLINのx64コンソール対応版か
299デフォルトの名無しさん:2008/06/16(月) 14:56:54
HTREEITEMのハンドルの比較はどのようにやればいいですか?
300デフォルトの名無しさん:2008/06/16(月) 15:12:45
==
301デフォルトの名無しさん:2008/06/16(月) 15:26:44
冗談抜きで==以外にアイテム同一の比較する方法はない
302デフォルトの名無しさん:2008/06/16(月) 15:37:52
>>288
遅レスすみません、DrawText()にDT_CALCRECTを渡す方法で出来ました。

上記方法での取得値 - リストボックスの幅 + 縦スクロールバーの幅

で正確なスクロール幅が算出出来ました。
本当にありがとうございました。
303デフォルトの名無しさん:2008/06/16(月) 16:20:15
一瞬>>300が何のレスか分からないw
304デフォルトの名無しさん:2008/06/16(月) 17:49:15
Cから呼び出したDLL内でEXCEPTION_ACCESS_VIOLATION (0xc0000005)
が発生した場合、それをC側から補足できますでしょうか?
例外が発生したことを上の関数に返したいのですが
難しいでしょうか?

よろしくお願いいたします。
305デフォルトの名無しさん:2008/06/16(月) 17:50:49
VC++なら___try - ___catch(EXCEPTION_EXECUTE_HANDLER)
306デフォルトの名無しさん:2008/06/16(月) 17:51:01
___じゃない、__
307デフォルトの名無しさん:2008/06/16(月) 18:17:43
>>305
ありがとうございます。
スーパー助かりました。
308デフォルトの名無しさん:2008/06/16(月) 19:33:49
コンビニどういたしまして。
309デフォルトの名無しさん:2008/06/16(月) 19:43:32
まさか全く関係ない奴が、どういたしましてなんて言ってないよなw
310デフォルトの名無しさん:2008/06/16(月) 19:51:31
私には心の分身が居るので彼らがどういたしましてを言っています
311デフォルトの名無しさん:2008/06/16(月) 19:54:08
たとえ心が離れていても僕たちはいつもひとつ!
312デフォルトの名無しさん:2008/06/16(月) 20:21:42
それ多重人格じゃね?
313デフォルトの名無しさん:2008/06/16(月) 21:40:53
このスレには人工無脳が搭載されてるのを知らないのか?
「ありがとうございます」に対して自動で「どういたしまして」と返信して回答者の煩わしさを軽減してくれてるんだよ。

ただあまり賢くないから、たまに暴走して意味不明なレスで荒れたり
「なぜこんな設計にするのか理解できない」→「分からないならレスしないでください」
と煽ったりして荒れる原因になって迷惑な一面もある。
314デフォルトの名無しさん:2008/06/16(月) 21:51:45
説明ありがとうございます
315デフォルトの名無しさん:2008/06/16(月) 21:53:25
どういたしまして
316デフォルトの名無しさん:2008/06/16(月) 22:48:13
質問です。

CreateProcessでメモ帳(notepad.exe)を起動する際に、
ユーザーがCtrlキーを押しながら起動しても最前面にメモ帳を表示させたいのですが、
試行錯誤を繰り返していますが上手くいきません。
ご教授お願いいたします。
317デフォルトの名無しさん:2008/06/16(月) 22:49:43
お断りします
318デフォルトの名無しさん:2008/06/16(月) 22:51:32
お断りじゃあ仕方ないよな
あきらめろ
319デフォルトの名無しさん:2008/06/16(月) 23:26:58
AttachThreadInputとかかね?
320デフォルトの名無しさん:2008/06/16(月) 23:30:10
>>243
規制に巻き込まれて遅レスだが
WS_EX_TRANSPARENTスタイルを追加してWM_ERASEBKGNDで背景画像をBitBlt。
ちらつくので親ウィンドウにWS_CLIPCHILDREN追加して
RichEditのカーソル付近の表示がおかしくなるので親ウィンドウのWM_PAINTで
RichEditのUpdateWindow追加でいけると思う。
321デフォルトの名無しさん:2008/06/16(月) 23:56:19
>>291
IME対応を何もしなくても、確定した文字列は最悪WM_CHARで1文字ずつ送られてくる (IME-unaware)。
ANSIモードだとShift_JISの2バイト文字も1バイトずつ送られてくる。

それだとあまりにも不便すぎるから、IMM APIを使って取得する。
確定文字列の取得はWM_IME_COMPOSITIONかつlParam & GCS_RESULTSTRのとき。
詳しくはググれ。あと、再変換対応も忘れるな。

現在はIMMからTSFへ移ろうとしているんだが、
IMMでしか使えない変換エンジンの1つにATOKもあるし、
XPまでだと様々な理由でTSFをオフにしたり、そもそもTSFが入っていなかったりするので、
TSFのみの対応のアプリケーションは非現実的。IMMのみかIMM/TSF両対応にすべき。
322デフォルトの名無しさん:2008/06/17(火) 00:40:38
> ユーザーがCtrlキーを押しながら起動しても

今頃こんな機能があることを知った

ありがとう2ちゃんねらー
323デフォルトの名無しさん:2008/06/17(火) 00:44:18
Ctrlキー押して起動してみたけど
なんもならないぞ
324デフォルトの名無しさん:2008/06/17(火) 01:06:34
>>322
マジだ・・・今まで知らんかった
325デフォルトの名無しさん:2008/06/17(火) 01:13:50
Shiftを押しながらだと・・・
326デフォルトの名無しさん:2008/06/17(火) 01:17:19
shift 最小化して起動
alt  プロパティ

知りませんでした
327デフォルトの名無しさん:2008/06/17(火) 01:25:42
すげぇマジだ。
Windowsのプログラマは只者じゃねーな。
328デフォルトの名無しさん:2008/06/17(火) 04:20:05
スタートメニューやクイック起動からだと
Ctrl+クリック  バックグラウンドで起動 (メモ帳だけ?)
Shift+クリック メニューが勝手に消えない

Shift+クリックなんて知らなかった。これ結構便利だな。
329デフォルトの名無しさん:2008/06/17(火) 10:01:57
> Shift+クリック メニューが勝手に消えない

うおおおお
すげえ、これすげえ
感激した
330デフォルトの名無しさん:2008/06/17(火) 10:03:29
感激したので、これからは
WinMainのnCmdShow引数をまじめに処理しようと思う
331デフォルトの名無しさん:2008/06/17(火) 10:55:21
で、結局Ctrl押しながら起動でZオーダー最前面にする方法は誰も分からんのか、、、
332デフォルトの名無しさん:2008/06/17(火) 11:03:25
便利な機能を殺すのか。
ウィンドウハンドルをどうにか持って来れれば何とかならんか?
333デフォルトの名無しさん:2008/06/17(火) 11:58:07
メモ帳のソースコードが公開されていて改修できるなら可能だと思うが、
それが出来ないならちょっと思いつかないな。
334デフォルトの名無しさん:2008/06/17(火) 12:09:26
notepad.exeを改造すればいいじゃない
その程度のクラック知識も無い人はWin32APIで開発なんてやめた方がいいと思うよ
335デフォルトの名無しさん:2008/06/17(火) 12:10:27
STARTUPINFOに仕込んでてもダメかな…
336デフォルトの名無しさん:2008/06/17(火) 12:15:25
流出はしてたかもしれんなw
337デフォルトの名無しさん:2008/06/17(火) 12:16:32
別に変な事をしなくてもThreadIDから窓を列挙して前面に移動すればいいだけじゃないか
338デフォルトの名無しさん:2008/06/17(火) 12:22:58
実際にやってみれ
多分無理
339デフォルトの名無しさん:2008/06/17(火) 12:27:54
メモ帳限定でいいなら
CreateProcess→WaitForInputIdle→ウィンドウ列挙してプロセスIDから該当のメモ帳を探す
→AttachThreadInputでアクティブプロセスのコンテキストを割り当て→SetForegroundWindow
こうかな?
340デフォルトの名無しさん:2008/06/17(火) 14:18:04
メモ帳をフックすればいいだろ
341デフォルトの名無しさん:2008/06/17(火) 14:31:43
ソレダ!
342デフォルトの名無しさん:2008/06/17(火) 14:34:47
んー
Process32FirstとProcess32Nextを使ってNotePad.exeと親のプロセスIDとを取得。
AttachThreadInputでアタッチして制御をもらって、終わったらデタッチ。

ただ、NotePad.exeのウインドウハンドルはどうやって取得するんだろう。
それが出来ればSetActiveWindowなりSetForegroundWindowを呼べるんだが。
343デフォルトの名無しさん:2008/06/17(火) 14:41:59
CreateProcess したのに、わざわざそうやってプロセスID取得するの?
EnumWindows()とGetWindowThreadProcessId()を組み合わせて探すのが
バージョン依存しなくていいかも。
344343:2008/06/17(火) 14:42:45
下2行はプロセスIDからウィンドウハンドル探す方法ね。
345デフォルトの名無しさん:2008/06/17(火) 16:53:06
バージョン依存ってProcess32FirstがNT4で使えないとかそういう事かね?
346デフォルトの名無しさん:2008/06/17(火) 16:57:07
メモ帳側が変わるかということじゃね
347デフォルトの名無しさん:2008/06/17(火) 19:19:45
変わらねーよw

・タブ対応
・正規表現grep
・構文ハイライト
・ソース折り畳み
ぐらいは対応して欲しいけどな
348デフォルトの名無しさん:2008/06/17(火) 19:33:24
そんな高機能なメモ帳なんてメモ帳じゃないやい・゚・(つД`)・゚・

でも、Vistaのメモ帳ではCtrl+Gで行番号指定移動に対応していたりと
結構侮れなかったりもする。
349デフォルトの名無しさん:2008/06/17(火) 19:36:52
メモ帳はタブ幅を4に変更可能にしてくれればもう何も言うことはない
350デフォルトの名無しさん:2008/06/17(火) 19:45:13
comctl32を設計した馬鹿をひっぱたきたい。
351デフォルトの名無しさん:2008/06/17(火) 19:54:15
メモ帳に関連づけてるファイルがなくて試せない俺は負け組
352デフォルトの名無しさん:2008/06/17(火) 19:57:05
>>350
つうほうしまたし
353デフォルトの名無しさん:2008/06/17(火) 20:18:29
メモ帳というかEditコントロールが貧弱すぎ。
無制限UNDO/REDOやドラッグドロップぐらい標準で対応しろと。
マウス乗せたらボワっと色が変わるようなくだらん機能つけるぐらいなら基本機能を充実させろと。
354デフォルトの名無しさん:2008/06/17(火) 20:22:41
そんなもの標準でつけられても、結局は込み入ったことするには不足で、自前で実装することになるのが目に見えてる。
355デフォルトの名無しさん:2008/06/17(火) 21:31:19
SetWindowHookEx で、WH_MOUSE を指定し、プライマリスレッドへのローカルフックを
設定しているのですが、MOUSEHOOKSTRUCT.dwExtraInfoは常に0になります。
XBUTTONの番号やホイールの回転量が取れなくて困るのですが、これは仕様なんでしょうか。
356355:2008/06/17(火) 21:47:41
すみません。ググったらすぐわかりました。MOUSEHOOKSTRUCTEXを使うべきなんですね。
357デフォルトの名無しさん:2008/06/17(火) 21:54:32
Editコントロールを改良してくれるというなら、TSFに対応してほしかった。
ただ、MS-IMEナチュラルインプットがフェードアウト気味で、どうでもいいと思うようになってきたけど。
358デフォルトの名無しさん:2008/06/17(火) 21:59:44
時代はATOKです
359デフォルトの名無しさん:2008/06/17(火) 22:27:14
SS_BITMAPを指定したスタティックコントロールにStretchBlt()した画像を貼り付ける方法が判りません。

(WM_PAINT以外)
hBmp = (HBITMAP)LoadImage(NULL, L"test.bmp", IMAGE_BITMAP, 640, 480, LR_LOADFROMFILE);
HDC hDC = GetDC(hwnd);
hMemDC = CreateCompatibleDC(hDC);
SelectObject(hMemDC, hBmp);
hBackDC = CreateCompatibleDC(hMemDC);
hBackBmp = CreateCompatibleBitmap(hMemDC, 256, 192);
SelectObject(hBackDC, hBackBmp);
SetStretchBltMode(hBackDC, STRETCH_HALFTONE))
StretchBlt(hBackDC, 0, 0, 256, 192, hMemDC, 0, 0, 640, 480, SRCCOPY);
ReleaseDC(hwnd, hDC);

(WM_PAINT内)
BeginPaint(hwnd, &ps);
SendDlgItemMessage(hwnd, IDC_BITMAP1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBackBmp);
EndPaint(hwnd, &ps);

このようにしてみましたが、スタティックコントロール上には何も表示されません。
何が原因でしょうか。
※便宜上WM_〜と書いていますが、実際はメッセージクラッカーを使用しています。
360デフォルトの名無しさん:2008/06/17(火) 22:42:44
WM_PAINT内
361デフォルトの名無しさん:2008/06/17(火) 23:38:47
マインスイーパの(ニコニコマークの)ボタンのようなものを押そうとしているんですが、

HWND hwnd = FindWindow(NULL,TEXT("マインスイーパ"));
POINT pos = {87,27};
int lparam = (pos.y<<16) + pos.x;
PostMessage(hwnd,WM_LBUTTONDOWN,0,lparam);
PostMessage(hwnd,WM_LBUTTONUP,0,lparam);

で押したことにできません。
pos={100,100}とかで下の領域部分は押したことにできます。
調べた感じ、ボタンっぽい部分はハンドルも持ってなさそうなのですが、
どうすれば押せるのでしょうか?
362デフォルトの名無しさん:2008/06/17(火) 23:40:11
>>361
F2を押したことにするんじゃだめなの?
363デフォルトの名無しさん:2008/06/17(火) 23:43:35
>>362
マインスイーパをプログラムで操作したいというよりは、
ハンドルを持っていないボタンを押したいということなんです。
364362:2008/06/17(火) 23:43:36
よく考えたらF2よりメニューのID調べてWM_COMMAND送ったほうが楽かも
365デフォルトの名無しさん:2008/06/17(火) 23:46:23
>>363
SendInput
366デフォルトの名無しさん:2008/06/17(火) 23:54:28
>>365
やっぱりそれしかないんですかね?
PostMessageでなんとかしたかったけど、SendInputでいってみます。
ありがとうございました。
367デフォルトの名無しさん:2008/06/18(水) 00:31:14
「チートのためのSendInput」
という本を書いたら売れますか?
368デフォルトの名無しさん:2008/06/18(水) 02:50:24
チート専門ならWin32APIなんかよりAHKでも薦めるかな
369デフォルトの名無しさん:2008/06/18(水) 13:13:44
すみません、ちょっとお聞きしたいんですが、
CreateFileMappingAの戻り値のHANDLEから
_open_osfhandle()と_fdopen()とで
FILE*を取得することは出来るんでしょうか?
どうもやってみても_open_osfhandle()が-1を返すんですが、
失敗する理由が自分のコーディングミスなのか仕様なのか分からないです。
370デフォルトの名無しさん:2008/06/18(水) 14:27:41
そのハンドルは別のものだから使えないよ
371デフォルトの名無しさん:2008/06/18(水) 17:25:33
>>360
遅レスすみません、漸く解りました。
ありがとうございます。

(WM_PAINT以外)
hBmp = (HBITMAP)LoadImage(NULL, L"test.bmp", IMAGE_BITMAP, 640, 480, LR_LOADFROMFILE);
HDC hDC = GetDC(hwnd);
hMemDC = CreateCompatibleDC(hDC);
SelectObject(hMemDC, hBmp);
hBackDC = CreateCompatibleDC(hMemDC);
hBackBmp = CreateCompatibleBitmap(hMemDC, 256, 192);
hPrevBmp = SelectObject(hBackDC, hBackBmp);
SetStretchBltMode(hBackDC, STRETCH_HALFTONE))
StretchBlt(hBackDC, 0, 0, 256, 192, hMemDC, 0, 0, 640, 480, SRCCOPY);
ReleaseDC(hwnd, hDC);

(WM_PAINT内)
BeginPaint(hwnd, &ps);
HBITMAP hTempBmp = (HBITMAP)SelectObject(hBackDC, hPrevBmp);
SendDlgItemMessage(hwnd, IDC_BITMAP1, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hBackBmp);
SelectObject(hBackDC, hTempBmp);
EndPaint(hwnd, &ps);
372デフォルトの名無しさん:2008/06/18(水) 17:27:16
>>371
そのソースじゃ何も解っていないようだな
373デフォルトの名無しさん:2008/06/18(水) 17:28:40
WM_PAINTの度にSTM_SETIMAGEを送る必要はない気がするんだけど、自分の勘違いか?
374デフォルトの名無しさん:2008/06/18(水) 17:40:35
てかStretchBlt自体が不要。SS_REALSIZECONTROLでいいじゃん。
それとも、XP未満にも対応する必要でもあるの?
375デフォルトの名無しさん:2008/06/18(水) 20:02:36
戦略からコードの細部にいたるまで間違いだらけだな、感動した。
またクライアント領域の人か?基礎からちゃんと勉強しないと話にならんぞ。
376デフォルトの名無しさん:2008/06/18(水) 20:40:19
今更Win32の基礎を勉強するなんて馬(ry
377デフォルトの名無しさん:2008/06/19(木) 00:06:43
開発環境は、XP SP2、VS2005 Standard Edition
Win32API + SDKでプログラミングしおります。

プロパティシートで質問です。

5個のタブがあるプロパティシートのダイアログを表示させて
各種設定を行うようにしました。

一番はじめにプロパティシートのダイアログを表示させた時に
1個目のタブが表示されています。
例えば2個目、3個目のタブを選択するとします。
いったんダイアログを閉じて、再びプロパティシートのダイアログを
表示させた時に、デフォルトで2個目や3個目のタブを選択した
状態にしたいのですが。
アドバイスよろしくお願いします。

一番最後に選んだタブを取得できればいいのですが。
そのタブの位置を変数でもって次回にスタートページを設定したいのです。
378デフォルトの名無しさん:2008/06/19(木) 00:41:11
質問が連続して申し訳ないです

あるウィンドウのテキストが変更されたことを知る方法はありますか?
サブクラス化してWM_SETTEXTを捕まえればよいのですが、他にスマートな解法は無いものかと・・・
379デフォルトの名無しさん:2008/06/19(木) 01:08:39
XP SP2、VC2003 Pro、現在mp3のデコード・再生プログラムを作っています。

DWORD MP3Size; BYTE* MP3Data;
DWORD WaveSize; BYTE* WaveData;
WAVEFORMATEX WF; MPEGLAYER3WAVEFORMAT MF;
//ファイルを開く
HMMIO hmmio;
MMRESULT mmr;
MMCKINFO mmckRiff;
MMCKINFO mmckFmt;
MMCKINFO mmckData;
hmmio = mmioOpen(const_cast<LPSTR>(FileName.c_str()), NULL, MMIO_READ);
if(hmmio==NULL){
  return(false);
}
mmckRiff.fccType = mmioStringToFOURCC("WAVE", 0);
mmr = mmioDescend(hmmio, &mmckRiff, NULL, MMIO_FINDRIFF);
if(mmr!=MMSYSERR_NOERROR){
  mmioClose(hmmio, 0);
  return(false);
}

今のところこんな感じで作っているのですが、mmioDescendで必ずエラーが発生します。
エラーコードを調べたところ272でした、MMIOERR_CHUNKNOTFOUNDではないようです(ifでチェックしてみました)
エラーの原因は何でしょうか?ご教授願えればと…。
380デフォルトの名無しさん:2008/06/19(木) 01:20:27
>>379
開こうとしてるファイルはRIFF/WAVE形式なの?
普通はmp3と言ったら、違うフォーマットだけど。
381デフォルトの名無しさん:2008/06/19(木) 01:50:24
>>380
ありがとうございます、調べてみたところRIFF/WAVE形式を再生するプログラムを書いてたようですね。
開こうとしていたファイルは普通のmp3形式でしたorz
382デフォルトの名無しさん:2008/06/19(木) 07:19:10
おいw
383デフォルトの名無しさん:2008/06/19(木) 08:25:50
mp3なんてMCIかIGraphBuilderにぶち込んでしまえ。
後者なら波形も引っ張り出せたはずだし。
384デフォルトの名無しさん:2008/06/19(木) 08:41:04
#define HWND_DESKTOP ((HWND)0)

HWND hWndDesktop = GetDesktopWindow();
は値が違うのに,
実行させてみるとアプリケーションは
どちらでも正常に動作する(ように見える)
のは何故なんでしょうか?
385384:2008/06/19(木) 09:04:52
自己レスです.
おそらく,

HWND_DESKTOP は,引数として NULL を渡しているのと同じ.
各API内では, NULL が渡された場合に, GetDesktopWindow() で
デスクトップのウィンドウハンドルが取得されるようになっている.

ということですね.
386デフォルトの名無しさん:2008/06/19(木) 11:36:09
>>384=>>55でおk?

,.ってなんか違和感あるなぁw
理系じゃ割と普通だけど
387デフォルトの名無しさん:2008/06/19(木) 11:48:37
ATOKのデフォじゃなかったっけ。
それにしちゃたまにしか見ないな。
388デフォルトの名無しさん:2008/06/19(木) 14:04:08
カナ入力だと面倒だからそういう人多いんじゃなかったっけか?
389デフォルトの名無しさん:2008/06/19(木) 14:43:27
fopen_s(&fp, Name.c_str(), "w+TD");
とかしたときの
「可能な限りディスクにフラッシュしない」って「メモリが許す限り」って意味か?
390デフォルトの名無しさん:2008/06/19(木) 14:51:13
このスレで話したいならCreateFileのフラグに読み替えて書いた方がいいと思われ
391デフォルトの名無しさん:2008/06/19(木) 14:54:31
I/Oバッファサイズが許す限り。
392デフォルトの名無しさん:2008/06/19(木) 19:12:55
ダイアログベースアプリで文字を表示する部分について質問なのですが、
現在
buffer += updateMessage;
buffer += "\r\n";
::SetWindowTextA(GetDlgItem(IDC_LOG)->GetSafeHwnd(),buffer.c_str());
::SendMessage(GetDlgItem(IDC_LOG)->GetSafeHwnd(), EM_LINESCROLL, 0, 65536);
こんな感じで追加して行ってるのですが、
追加する1行ごとにフォントの色を変えたい場合どうすればいいでしょうか?
全体ならできるのですが・・・
HTMLの<font></font>みたいに範囲指定できないもんですか?
393デフォルトの名無しさん:2008/06/19(木) 19:14:52
オーナードロー
394デフォルトの名無しさん:2008/06/19(木) 20:15:17
Windows Vista で新しく追加されたAPIの一覧はどこで見られますか?
MSDNを探したのですがそれらしいのは見当たらず...
395デフォルトの名無しさん:2008/06/19(木) 20:18:00
その質問スレの中に必ずひとつはあるぞ。
ちゃんと探せ。
ttp://msdn.microsoft.com/en-us/library/aa383687(VS.85).aspx
396デフォルトの名無しさん:2008/06/19(木) 21:25:10
>>395
どうもありがとうございました。
397デフォルトの名無しさん:2008/06/19(木) 22:47:54
HTTP接続の時のダイジェスト認証はどのようにすればよいのでしょうか?
基本認証は401が返った後、InternetSetOption関数を使えばよいのですが、
ダイジェスト認証のほうはどの関数をどう使えばよいのかよくわかりません。

どうも、digest.dll内の関数を使えばよいようですが、これだけでは手も足も出ない・・・

ソケットを直接操作するのはできれば避けたし、MD5暗号化する処理は自前で行い、HTTPのヘッダに追加する必要があるのでしょうか?
環境は.NetではないC++です。
398デフォルトの名無しさん:2008/06/19(木) 22:57:38
>>393
Editコントロールにオーナードローなんてねーよ
知らないならレスするな

>>392
RichEdit
399デフォルトの名無しさん:2008/06/19(木) 23:18:37
>>385
ちなみに、Old New Thingでには、GetDesktopWindowの戻り値を渡すべきではないときでも
それを渡す人が多いと書かれている。要注意な。
http://blogs.msdn.com/oldnewthing/archive/2004/02/24/79212.aspx
400デフォルトの名無しさん:2008/06/19(木) 23:47:17
APIの内部でモーダル化する為にEnableWindow(hwnd, FALSE)してるやつとかな
ずっと前に何かのAPIでGetDesktopWindow()を渡したらCtrl+Alt+Del以外効かなくなってびびった事があるw
401デフォルトの名無しさん:2008/06/20(金) 05:45:22
ファイル名を他のウィンドウに渡すことってできますか?
402デフォルトの名無しさん:2008/06/20(金) 05:55:01
>>401
WM_COPYDATA
403デフォルトの名無しさん:2008/06/20(金) 06:13:24
環境の保存処理はWM_CLOSE、WM_DESTROYどちらで行うべきですか?
404デフォルトの名無しさん:2008/06/20(金) 09:29:14
CLOSEで
405デフォルトの名無しさん:2008/06/20(金) 09:34:10
じゃあ俺はDESTROYで
406デフォルトの名無しさん:2008/06/20(金) 10:31:34
>>403
環境設定の類は、変更したら即保存の方がいい。
ウインドウの位置やサイズのようなものは、WM_DESTROYかな。
(WM_CLOSEでも構わないが)
編集中のドキュメントはWM_CLOSEで保存する。

メッセージが来るタイミングは、WM_CLOSEは閉じるボタンを押した直後で
まだこの段階では閉じるのを拒否もできる。(保存するか聞くのはここ)
WM_DESTROYは画面からウインドウが消えたが実体は残っている状態。
407デフォルトの名無しさん:2008/06/20(金) 10:31:58
なら俺はCREATEで
408デフォルトの名無しさん:2008/06/20(金) 10:39:57
ログオフ等はWM_CLOSEは送られないので
WM_QUERYENDSESSIONも処理
409デフォルトの名無しさん:2008/06/20(金) 10:56:54
なら俺はPAINTで
410デフォルトの名無しさん:2008/06/20(金) 14:21:08
タスクマネージャからプロセスの終了が実行されたことを
そのプロセスが感知できるものでしょうか?
411デフォルトの名無しさん:2008/06/20(金) 14:44:01
>>411
できない。他のプロセスから状態を監視する (確実なのは WaitForSingleObject) しかない。
412デフォルトの名無しさん:2008/06/20(金) 15:37:16
>>412
無限再帰はスタックオーバーフローするぞ
413デフォルトの名無しさん:2008/06/20(金) 15:51:52
414デフォルトの名無しさん:2008/06/20(金) 15:53:35
"PHP"を展開しようとしてもスタックオーバーフローしますよね
415デフォルトの名無しさん:2008/06/20(金) 16:57:35
>>412の安価辿っていったらPCがオーバーフローした。謝罪と賠sh(ry
416デフォルトの名無しさん:2008/06/20(金) 17:37:59
417デフォルトの名無しさん:2008/06/20(金) 17:38:01
winsockで一定時間応答なかったら、タイムアウトするにはどうすればいいの?
418デフォルトの名無しさん:2008/06/20(金) 19:42:30
ioctlsocketでFIONBIOを使うと非ブロッキングモードにできる。
そこから後は好きなように実装するといい。
419デフォルトの名無しさん:2008/06/21(土) 01:20:30
>>417
そんくらいググれカス
420デフォルトの名無しさん:2008/06/21(土) 01:25:29
421デフォルトの名無しさん:2008/06/21(土) 04:21:23
CriticalSectionをstaticなメンバ変数に持つってありですか?
422デフォルトの名無しさん:2008/06/21(土) 04:33:34
現在実行しているアプリ自身の
メモリ使用容量って取得できますか?

タスクマネージャのメモリ使用量みたいな数値です
423デフォルトの名無しさん:2008/06/21(土) 04:44:38
424デフォルトの名無しさん:2008/06/21(土) 05:16:19
メモリ使用量を取得する方法なんて無いと思うが
ワーキングセットのサイズを取得する方法ならあるけど
425デフォルトの名無しさん:2008/06/21(土) 11:11:02
>>421
別に構わないと思うが、いつ初期化するかが問題
426デフォルトの名無しさん:2008/06/21(土) 11:16:17
>>425
CRITICAL_SECTIONをラップしたクラスのインスタンスをstaticにすれば、コンストラクタで初期化できる。
427デフォルトの名無しさん:2008/06/21(土) 13:52:23
そのコンストラクタが起動するタイミングが問題になるかもな
428デフォルトの名無しさん:2008/06/21(土) 14:12:55
>>427
staticにするとコンストラクタはmainの前に呼ばれる
429デフォルトの名無しさん:2008/06/21(土) 14:27:54
staticの存在意義がいまいちよくわからない
globalじゃだめなの?
430デフォルトの名無しさん:2008/06/21(土) 14:28:41
>>428
mainの前に初期化するかは処理系定義(3.6.2)
初めて使用するまで初期化を遅らせられる場合もある。
431デフォルトの名無しさん:2008/06/21(土) 14:57:39
VC++依存でおk
432デフォルトの名無しさん:2008/06/21(土) 16:57:45
一度だけ初期化を実行する機能を、自前で実装してみるのも良い経験になるかもしれないな。
InterlockedCompareExchangeの存在理由が良く判るようになる。
433デフォルトの名無しさん:2008/06/21(土) 17:26:20
そんな経験いりません
434417:2008/06/21(土) 21:54:41
非ブロッキングモードにしたら、accept貫通しだしました。
acceptの戻り値がWSAWOULDBLOCKならcontinueの力技です。
他に何かいい方法ないですか?
435デフォルトの名無しさん:2008/06/21(土) 22:05:16
非ブロッキングモードをやめれば?
436デフォルトの名無しさん:2008/06/21(土) 22:07:08
>>434
WSAEventSelect
437デフォルトの名無しさん:2008/06/21(土) 22:20:02
>>436
ありがとうございます。。
調べてみます。
438デフォルトの名無しさん:2008/06/21(土) 22:26:00
Winsockで非同期やりたいなら、こんなとこで一問一答してないで、
ttp://www.amazon.co.jp/dp/4797330449/
とか買ったほうが早いと思うぞ。
439デフォルトの名無しさん:2008/06/21(土) 22:55:48
お前が¥ 5,460くれれば買ってやんよ
440デフォルトの名無しさん:2008/06/21(土) 23:40:50
同期の方が理解できているなら、買うほどじゃないな。
接続タイムアウト程度の処理ならMSDN読んでるだけで十分。
441デフォルトの名無しさん:2008/06/22(日) 00:35:30
環境変数を含むパス名を展開してくれるAPIはありますでしょうか?
変数名:HOGE 変数値:C:\hogeという変数があったとして、
Get〜("%HOGE%\abc.txt")で"C:\hoge\abc.txt"を取得できるような…。
442デフォルトの名無しさん:2008/06/22(日) 00:49:39
HOGEがC:\hoge;C:\hageだったらどうすんのさ
443デフォルトの名無しさん:2008/06/22(日) 00:50:36
ExpandEnvironmentStrings
444デフォルトの名無しさん:2008/06/22(日) 01:23:26
DoEnvironmentSubstの方が楽
445デフォルトの名無しさん:2008/06/22(日) 01:31:03
>>443-444
助かりました。ありがとうございます。
446デフォルトの名無しさん:2008/06/22(日) 08:02:02
>>434
それくらいはググろうぜ
447デフォルトの名無しさん:2008/06/22(日) 14:48:26
(3+2.5)/4-3*2
みたいな文章を計算するAPI教えてください
448デフォルトの名無しさん:2008/06/22(日) 14:51:44
電卓相手にコピペでもしてろ
449デフォルトの名無しさん:2008/06/22(日) 14:55:51
んなもんない。以上。
450デフォルトの名無しさん:2008/06/22(日) 14:59:30
448が以外ないい答えかも
451デフォルトの名無しさん:2008/06/22(日) 15:06:11
>>447
宿題スレへどうそ。
なお、この手の問題は頻出です。
452デフォルトの名無しさん:2008/06/22(日) 16:07:41
宿題スレへ行ってもそんなAPIはないと言われないだろうか
453デフォルトの名無しさん:2008/06/22(日) 16:39:06
bison/flex 使うと意外と簡単に作れるぜ
454デフォルトの名無しさん:2008/06/22(日) 16:40:27
もうboost::spiritでよくね?
455デフォルトの名無しさん:2008/06/22(日) 16:56:37
またboost厨か
456デフォルトの名無しさん:2008/06/22(日) 17:00:08
boost::spiritはコンパイルで死ねる
457デフォルトの名無しさん:2008/06/22(日) 17:16:53
リッチエディットボックスを作ったんですけどミギクリックメニューが
表示されません。助けてください!!
458デフォルトの名無しさん:2008/06/22(日) 17:19:09
WM_CONTEXTMENU
459デフォルトの名無しさん:2008/06/22(日) 18:11:38
> ミギクリックメニュー
なんでカタコト?
460デフォルトの名無しさん:2008/06/22(日) 18:18:01
ミギクリ!
461デフォルトの名無しさん:2008/06/22(日) 19:04:01
>>460
それなんてエロゲ?
462デフォルトの名無しさん:2008/06/22(日) 19:39:17
キミグリ
463デフォルトの名無しさん:2008/06/22(日) 19:40:48
はまぐり
464デフォルトの名無しさん:2008/06/22(日) 19:45:01
(´д` ;)ハァハァ・・・
465デフォルトの名無しさん:2008/06/22(日) 19:49:18
ギクリッ
466デフォルトの名無しさん:2008/06/22(日) 22:15:58
>>459-465
訳:かまってほしいな
467デフォルトの名無しさん:2008/06/22(日) 22:30:32
>>466
訳:かまってほしいな
468デフォルトの名無しさん:2008/06/22(日) 22:31:28
>>467-468
訳:かまってほしいな
469デフォルトの名無しさん:2008/06/22(日) 22:43:51
>>1-1001
かまってほしいな
470デフォルトの名無しさん:2008/06/22(日) 23:00:39
win2kからOSをXPpro sp2にうpグレードしたら
今まで使えてたツールが使えなくなってたからデバッグしたら
CreateWindow関数の戻り値のところでヌルポッポーが返るようになってたんだけど
この場合どこ直せばいいの?msdnみたら対応情報OSにXPが含まれてないのは
わかったけど使えないってこと?代替の関数とかあんの?
471デフォルトの名無しさん:2008/06/22(日) 23:10:47
何ふざけてんの?
472デフォルトの名無しさん:2008/06/22(日) 23:15:34
ごめん、ほかのツールは動いてたから原因は他にありそうだ
473デフォルトの名無しさん:2008/06/22(日) 23:16:16
今まで使えてたツールの具体名キボン
474デフォルトの名無しさん:2008/06/22(日) 23:17:42
>>470
訳:かまってほしいな
475デフォルトの名無しさん:2008/06/22(日) 23:25:22
ただ単にエラー出してる箇所すっとばしてブレークポイント貼ってたから勘違いしてたわ
476デフォルトの名無しさん:2008/06/22(日) 23:52:29
訳:かまってもらえて嬉しいな
477デフォルトの名無しさん:2008/06/23(月) 00:04:36
Windows2000って、
DrawIcon()で32bitアルファチャネル付きのアイコンを表示出来たっけ?
XPからだったかな。
478デフォルトの名無しさん:2008/06/23(月) 11:01:46
XPから
479デフォルトの名無しさん:2008/06/23(月) 11:34:51
>>447
ScriptingRuntimeのEvalが楽
PSDKに入っていたりいなかったりWin32APIからは逸脱しそうだが
480デフォルトの名無しさん:2008/06/23(月) 12:10:41
>>479
トークナイズと逆ポーランド変換とスタック計算程度なんだから自分で作ればいいだろが
481デフォルトの名無しさん:2008/06/23(月) 12:37:57
わかったわかった。自分が作れるのをアピールしなくていいから。そんな程度のもので。
482デフォルトの名無しさん:2008/06/23(月) 12:40:47
自分が作れない悔しさをアピールしなくていいから。(プ
483デフォルトの名無しさん:2008/06/23(月) 12:45:12
わかったわかった。生暖かい目で見ててやるから。
484デフォルトの名無しさん:2008/06/23(月) 17:18:31
知らないならレスしないでください
485デフォルトの名無しさん:2008/06/23(月) 17:42:29
死なないならデスしないでください
486デフォルトの名無しさん:2008/06/23(月) 18:06:58
いまいち効かねぇよなあ、デスって。
487デフォルトの名無しさん:2008/06/23(月) 18:23:38
そこでバニッシュですよ
488デフォルトの名無しさん:2008/06/23(月) 18:35:46
ばかばっか
489デフォルトの名無しさん:2008/06/23(月) 18:52:13
訳:かまってほしいな
490デフォルトの名無しさん:2008/06/23(月) 19:04:56
訳:こ、この私があんたに構ってあげてるんだから感謝しなさいよね!///
491デフォルトの名無しさん:2008/06/23(月) 19:25:19
>>490
こういう奴って自分では面白いことを書いてるとでも思ってるのか?
492デフォルトの名無しさん:2008/06/23(月) 19:27:51
少なくとも490>491ではある。
493デフォルトの名無しさん:2008/06/23(月) 19:28:25
>>491
こういう奴って自分では格好いい指摘をしてるとでも思ってるのか?
494デフォルトの名無しさん:2008/06/23(月) 19:46:24
>>490=>>492=>>493
つまんね
495デフォルトの名無しさん:2008/06/23(月) 19:53:30
涙目の>>491と見せかけて、実は赤の他人と見た。
496デフォルトの名無しさん:2008/06/23(月) 19:59:04
(´д` ;)ハァハァ・・・
497デフォルトの名無しさん:2008/06/23(月) 20:25:15
かまってちゃんしかいないスレだな
498デフォルトの名無しさん:2008/06/23(月) 20:39:58
訳:ぼくもかまってほしいな
499デフォルトの名無しさん:2008/06/23(月) 21:00:40
Windowsって、タイトルバーの最小化/最大化/閉じボタンを押しっぱなしにしてると、
何のメッセージも飛んでこなくなるんだな。

どこのDOSプログラムだよって思った。

スレッド化するのめんどくせ・・・
500デフォルトの名無しさん:2008/06/23(月) 21:20:47
なんか困るの?
501デフォルトの名無しさん:2008/06/23(月) 21:22:46
キャプチャされてるだけじゃないの
502デフォルトの名無しさん:2008/06/23(月) 22:07:29
> Windowsって、タイトルバーの最小化/最大化/閉じボタンを押しっぱなしにしてると、
> 何のメッセージも飛んでこなくなるんだな。

それのどこがDOSプログラムなんだよ
Windowsのメッセージキューについて勉強しなおせ
503デフォルトの名無しさん:2008/06/23(月) 22:08:22
>>499
スレッド化するところを間違えるなよwww
504デフォルトの名無しさん:2008/06/23(月) 22:33:26
>>500-502

ためしてみなよ。
押してる間はタイマーやMMSYSTEM系のメッセージが全く来ないから。
そもそも押してる間はWinProcに来ないっぽいよ。

WM_PAINTが来なくなるのは、
裏になってるウィンドウの最小・最大化ボタンなんかを押しっぱなしにした時、
フォアグラウンドになったウィンドウの中身が描かれない事でも判る。

タイトルバークリックの時は、ダブルクリック待ち時間だけ止まるみたいだなw
505デフォルトの名無しさん:2008/06/23(月) 22:47:58
あ、今手元にあるのはXPだけだからVISTAはどうだか判らない。
Macで試してみたいなw
506デフォルトの名無しさん:2008/06/23(月) 22:48:11
仕様なのに、自分の思い通りにならないからって不具合みたいに言うなよw
507デフォルトの名無しさん:2008/06/23(月) 22:59:05
なんだ、マカーか
508デフォルトの名無しさん:2008/06/23(月) 22:59:38
厨房の典型的な例です
509デフォルトの名無しさん:2008/06/23(月) 23:05:10
てか、なんでわざわざそんなボタン押しっぱなしにするんだ
510デフォルトの名無しさん:2008/06/23(月) 23:26:03
まあマヌケな仕様ではあるわな
きっとリアルタイム性を重視しない奴が設計したんだろう
Winでリアルタイムも無いけどw
511デフォルトの名無しさん:2008/06/23(月) 23:26:45
馬鹿のマカーがWindowsの仕様にいちゃもん付けてるだけか

かまってちゃんといい基地外マカーといい、ホント碌な人間がいないスレだな
512デフォルトの名無しさん:2008/06/23(月) 23:27:09
タイトルバー非表示にすりゃいいんじゃね?
513デフォルトの名無しさん:2008/06/23(月) 23:35:58
>>510
Windows 1.0の時代にリアルタイムも何もないだろう
514デフォルトの名無しさん:2008/06/23(月) 23:45:46
うーん、さすがにタイトルバーをクリックしただけで
ちょこっと止まるのは知らなかったぞ。
いや、ボタンも知らなかったけどw
515デフォルトの名無しさん:2008/06/23(月) 23:57:50
常識だろ
使ってりゃ判るじゃん
馬鹿?
516デフォルトの名無しさん:2008/06/24(火) 00:10:59
使ってないから(=マカーだから)分からないんだろ
517デフォルトの名無しさん:2008/06/24(火) 00:18:21
>>515
視野狭w
518デフォルトの名無しさん:2008/06/24(火) 01:01:28
うっかりボタンとか押しちゃって、でもすんでのところで気がついて
ホールド→ドラッグで助かった経験は誰にでもあるはず
だから今の仕様でいいんじゃね?
519デフォルトの名無しさん:2008/06/24(火) 01:08:09
本来は押してる間エネルギーチャージして放した瞬間に爆速で最大化するという仕様になるはずだったそうだ。
520デフォルトの名無しさん:2008/06/24(火) 01:11:20
>>499,>>504,>>505,>>510,>>514,>>517 ∈ キモいマカー
こんな所までわざわざ出張ご苦労様
521デフォルトの名無しさん:2008/06/24(火) 01:12:22
>>518
そういう話とは違うだろw
522デフォルトの名無しさん:2008/06/24(火) 01:13:25
↑話を理解してない馬鹿
523デフォルトの名無しさん:2008/06/24(火) 01:21:34
訳:かまってほしいな
524デフォルトの名無しさん:2008/06/24(火) 01:31:57
かまってほしくない人はレスしないでください
525デフォルトの名無しさん:2008/06/24(火) 02:28:21
>>524
訳:かまってほしいな
526デフォルトの名無しさん:2008/06/24(火) 03:00:16
喧嘩すんな馬鹿ども
527デフォルトの名無しさん:2008/06/24(火) 03:02:25
(・ω・` )ヾ(・ω・* )ネェネェ カマッテヨ
528デフォルトの名無しさん:2008/06/24(火) 10:13:21
相変わらず粘着質なやつが常駐してるな
529デフォルトの名無しさん:2008/06/24(火) 10:38:04
>>528
お前がな
530デフォルトの名無しさん:2008/06/24(火) 10:40:19
もうやだこのスレ
531デフォルトの名無しさん:2008/06/24(火) 12:36:25
無理して居なくてもいいんじゃよ
532デフォルトの名無しさん:2008/06/24(火) 13:50:41
それはそうだ
533デフォルトの名無しさん:2008/06/24(火) 19:18:58
フリーやシェアウェアに限らず、エディタって特定部分の色を自動で変えますよね。
あれどうやってるのでしょうか?
タグで囲んで色を変えたいのですが・・・
MFCのコントロール変数とリッチエディタで該当文字がでたら色を変えるってのを試したのですが、
重すぎて話になりませんでした。
画面にログをどんどん表示していくのですが、
リッチエディタだと差分更新できないので、毎回全文字検索になってしまいます。
部分的に色を変えるって結構利用されると思うのですが、
便利なラッパーってないもんですかね?
534デフォルトの名無しさん:2008/06/24(火) 19:21:32
・人が作ったのを利用
・完全自作
535デフォルトの名無しさん:2008/06/24(火) 19:21:35
自作してる
536デフォルトの名無しさん:2008/06/24(火) 19:46:35
MFCwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
537デフォルトの名無しさん:2008/06/24(火) 19:47:25
なんてやってるからメッセージの細部がわからないのだよ
538デフォルトの名無しさん:2008/06/24(火) 19:51:58
差分更新できない?
539デフォルトの名無しさん:2008/06/24(火) 20:26:01
Scintilla
540デフォルトの名無しさん:2008/06/24(火) 20:29:33
粗チンチラ
541デフォルトの名無しさん:2008/06/24(火) 20:36:52
>>533
差分更新できるし全文検索はいらないし部分的に色を変えるのなんて
非常に簡単だ。
542デフォルトの名無しさん:2008/06/24(火) 20:41:18
Q:あれどうやってるのでしょうか?
A:非情に簡単だ。
543デフォルトの名無しさん:2008/06/24(火) 20:42:12
もはや質問に対する回答じゃないなw
544デフォルトの名無しさん:2008/06/24(火) 21:02:54
Q. ○○なことやりたいのですが・・・

A. どうしてそんなことをする必要があるのか疑問だ

もう回答じゃねぇwww
545デフォルトの名無しさん:2008/06/24(火) 21:16:43
プログラム組む奴は人の揚げ足(批判)とるの好きだよな
俺もその一人なのかorz
546デフォルトの名無しさん:2008/06/24(火) 22:20:11
揚げ足取りしかできない無知なんだろ
547デフォルトの名無しさん:2008/06/24(火) 22:30:32
非常に簡単なんですか・・・いつも思いますが2ch見てる方々どんだけすごい人達なんですか。
エディタって一定以上の大量の文字列を入れるとそれ以上はいらなくなりますよね。
そうなると、古いログを消して追加していかないといけないと思うんですが、
そのとき、消して追加した分、文字列の並びがずれるので、
リッチエディタで色を変える部分を検索しなおさないといけないと思うのですが、
やり方頭おかしいですか?
差分更新できないのでってのはちょっと言葉がおかしかったです。
とりあえず>>539さんが紹介してくれたのを調べてみます。ありがとです。
548デフォルトの名無しさん:2008/06/24(火) 23:10:57
>>547
非常に簡単ってのは言い過ぎだと思う。
理屈としてはそんなに難しいわけじゃないが、作るとなると面倒な作業はいっぱい。
エディタで重要なのはデータをどのような形で扱うか、という点で、それだけでもいくつもの研究がある。
おおざっぱな理念としては↓の記事がとっかかりになると思うので紹介しておく。
http://d.hatena.ne.jp/propella/20080420/p1
549デフォルトの名無しさん:2008/06/24(火) 23:12:40
所詮プログラマなんて底辺の職業だからな

毎日ストレス溜め込んで帰宅して、このスレで人の揚げ足取るぐらいでしか
それを発散できない可哀想な人々なんだろ
550デフォルトの名無しさん:2008/06/24(火) 23:15:00
訳:揚げ足取られて悔しいな
551デフォルトの名無しさん:2008/06/24(火) 23:21:31
自分より下だと思ってる奴に侮られると頭に来るよねw
552デフォルトの名無しさん:2008/06/24(火) 23:27:11
一行の文字数なんて知れてるから結構std::vectorとかでもいけるんだよね
553デフォルトの名無しさん:2008/06/25(水) 00:01:00
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
std::vectorとかでもいける
554デフォルトの名無しさん:2008/06/25(水) 00:04:01
↑話を理解してない馬鹿
555デフォルトの名無しさん:2008/06/25(水) 00:15:08
話を理解してないのは>>548だと思うが。
リンク先はエディタの色分けとは関係ないし。
556デフォルトの名無しさん:2008/06/25(水) 00:29:09
いや、話を理解してないのは俺だと思うが。
557デフォルトの名無しさん:2008/06/25(水) 00:34:51
それはない
558デフォルトの名無しさん:2008/06/25(水) 00:48:38
もうどうすんのこのスレ
559デフォルトの名無しさん:2008/06/25(水) 01:08:13
560デフォルトの名無しさん:2008/06/25(水) 02:29:17
アッー!
561デフォルトの名無しさん:2008/06/25(水) 12:39:31
TerminateThread()だろう
562デフォルトの名無しさん:2008/06/25(水) 13:38:06
まさにw
563デフォルトの名無しさん:2008/06/25(水) 16:56:22
もう次スレ立てるなよ
564デフォルトの名無しさん:2008/06/25(水) 16:58:16
そうだ!絶対に立てるなよ!
565デフォルトの名無しさん:2008/06/25(水) 17:17:37
KamatteHoshina();
566デフォルトの名無しさん:2008/06/25(水) 17:19:30
かまってほしな?
567デフォルトの名無しさん:2008/06/25(水) 17:50:29
出ていく人はExitThread()
あ、これだと終わっちゃうか
568デフォルトの名無しさん:2008/06/25(水) 18:35:19
DuplicateThread()
569デフォルトの名無しさん:2008/06/25(水) 19:04:47
このグループ(スレッド)に入りたいな。PostThreadMessage()
570デフォルトの名無しさん:2008/06/25(水) 19:28:21
訳:俺のギャグセンスは最高
571デフォルトの名無しさん:2008/06/25(水) 19:29:41
createwindowした画面に文字表示する時に
フォント指定して表示するにはどの関数使ったらいい?
572デフォルトの名無しさん:2008/06/25(水) 19:31:33
printf
573デフォルトの名無しさん:2008/06/25(水) 19:43:23
CreateFont or CreateFontIndirect
SelectObject (or SelectFont @ <widnowsx.h>)
TextOutか何か
574デフォルトの名無しさん:2008/06/25(水) 19:45:39
>>573
ありがとう
575デフォルトの名無しさん:2008/06/25(水) 22:08:04
ちゃんと俺様の質問に答えろよ、人間不合格共が。
それとも姦国人か?シナチクか?
576デフォルトの名無しさん:2008/06/25(水) 22:18:21
>>575
そのレスへ安価したら誰かが答えてくれるかもよ
577デフォルトの名無しさん:2008/06/25(水) 22:50:47
>>575
そもそも質問に答えられる人なんていませんが、何か?
578デフォルトの名無しさん:2008/06/25(水) 23:22:09
CreateMeteredSectionとかのAPIは
どのヘッダをインクルードすれば使えますか?

それとも動的にAPIアドレスを取得しないと使えないのでしょうか?
579デフォルトの名無しさん:2008/06/25(水) 23:23:53
char szString[256];
sprintf(szString, "%d", rand()%(100-1)+1);
ExtTextOut(,,,,, szString,,);

1行目のcharをTCHARに変えてこんな感じの処理できない?
やろうとしたら
C2664: 'sprintf' : 1 番目の引数を 'TCHAR [2]' から 'char *' に変換できません。
ってエラーでる
580デフォルトの名無しさん:2008/06/25(水) 23:24:50
>>579
wsprintf(szString, TEXT("%d"), rand()%(100-1)+1);
581デフォルトの名無しさん:2008/06/25(水) 23:29:36
_T("aaa")

TEXT("aaa")
ってなにが違うの?
582デフォルトの名無しさん:2008/06/25(水) 23:30:29
>>580
ありがとう
583580:2008/06/25(水) 23:33:02
>>581
定義ヘッダが違う?w
俺は詳しくはしらんから調べてみればいい

それよりメータードセクションの定義ヘッダを俺は知りたい
584580:2008/06/25(水) 23:46:38
調べたら自分で実装しろということだったらしいorz
585デフォルトの名無しさん:2008/06/25(水) 23:55:33
調べてから質問しろ
586デフォルトの名無しさん:2008/06/25(水) 23:57:55
>>578-584
http://msdn.microsoft.com/en-us/library/ms810428.aspx
ここのAppendixがソースだから、それをコピペしろ。
587デフォルトの名無しさん:2008/06/26(木) 00:00:14
>>585
何か違うだろ
588デフォルトの名無しさん:2008/06/26(木) 00:01:14
>>585
いや、自分なりに調べてわからなかったから質問した。
その後、続けて調べていくうちに自分で実装しないと
いけないという事がわかったんだ。

誤解を招いた言い方だったな。すまん。
589588:2008/06/26(木) 00:03:04
>>586
ありがとう。俺もさっきそこみてわかったんだw
590ハッカーの神様:2008/06/26(木) 00:11:32
おまいら皆この屑(>>588)を見習えよ
591デフォルトの名無しさん:2008/06/26(木) 00:17:01
Terminate590(TRUE)
592デフォルトの名無しさん:2008/06/26(木) 00:19:10
>>591
何がTRUEなんだ?
593デフォルトの名無しさん:2008/06/26(木) 00:41:42
ウィンドウをフルスクリーンにするにはどうすればいい?
594デフォルトの名無しさん:2008/06/26(木) 00:49:36
DirectX
タイトルバーや枠を消して最大化
595デフォルトの名無しさん:2008/06/26(木) 01:05:47
>>594
ありがとう
596デフォルトの名無しさん:2008/06/26(木) 16:04:06
他のアプリケーションのウィンドウの名前を得るにはどうすればいいですか?
597デフォルトの名無しさん:2008/06/26(木) 16:39:32
>>596
質問文すべて英語にしてググってみ
598デフォルトの名無しさん:2008/06/26(木) 16:41:08
その名前を得るための、事前にわかってる情報は何?
何も無いなら、EnumWindows()でハンドル列挙して、GetWindowText()かな。
599デフォルトの名無しさん:2008/06/26(木) 17:44:08
>>597
ttp://www.google.com/search?lr=lang_en&q=How+should+I+do+to+obtain+the+name+of+the+window+of+other+applications%3F

IE8とWMP11がトップに出てくるぞ
どういうSEOしてるんだよMSはw
600デフォルトの名無しさん:2008/06/26(木) 19:32:02
どういう思考してんだ>>599
そんな英文じゃなくて説明文に書いてあるであろう単語並べるだけでいい
601デフォルトの名無しさん:2008/06/26(木) 21:34:40
>>600
> 説明文に書いてあるであろう単語
それが判ってるなら質問なんかするかぼけ
602デフォルトの名無しさん:2008/06/26(木) 21:47:48
訳:構ってほしいな。
こうですか?><
603デフォルトの名無しさん:2008/06/26(木) 21:56:58
かまってほしくない人はレスしないでください
604デフォルトの名無しさん:2008/06/26(木) 23:28:35
>>601
アホなんですねわかります
605デフォルトの名無しさん:2008/06/26(木) 23:36:14
VC++2008ExpressEditionでフォームアプリケーション作成時はダイアログエディタ(?)あるけど
Win32プロジェクトでもダイアログエディタ使うにはどうすればいい?
606デフォルトの名無しさん:2008/06/26(木) 23:40:01
気合でRCを手書き。いやマジで。
607デフォルトの名無しさん:2008/06/27(金) 01:11:55
>>605
Standard以上のエディションを買えってゲイツが言ってた
608デフォルトの名無しさん:2008/06/27(金) 01:39:35
リソースエディタも無いようなゴミ配布するなって思う
それなら正直コマンドラインコンパイラだけでいいよ
609デフォルトの名無しさん:2008/06/27(金) 01:49:05
どっかにフリーでGUIなリソースエディタぐらい転がってるんじゃないか。
610デフォルトの名無しさん:2008/06/27(金) 01:52:38
ExpressEditionは、WebKitのビルドで使ったりするけどな
611デフォルトの名無しさん:2008/06/27(金) 02:04:41
ExpressEditionなんてイランからToolkit配布してくれればなー
まあコマンドラインコンパイラが目当てならDDKでもインスコすればいいけどさ
612デフォルトの名無しさん:2008/06/27(金) 03:52:16
意表をついてeVC4のリソースエディタ
613一瞬目を疑った罠:2008/06/27(金) 05:57:35
>>611
イスラエルなら兎も角、イランからの配布はないだろ。
614デフォルトの名無しさん:2008/06/27(金) 07:52:48
>>606-612
ありがとう
そこらへん明後日みる
615デフォルトの名無しさん:2008/06/27(金) 09:36:52
ダイアログリソースならBCCFormとか使えばいいじゃない
616デフォルトの名無しさん:2008/06/27(金) 09:49:42
>>615
- 動作に必要なソフト -
Borland C++ 5.51(必須), BCC Developer(推奨)
617デフォルトの名無しさん:2008/06/27(金) 10:56:25
>>596 です。
>>597-598
分かりました、ありがとうございます。
618デフォルトの名無しさん:2008/06/27(金) 12:16:25
>>616
brccもrcもほぼ互換だし、なんならリンク時にresでリンクすればいい。
619デフォルトの名無しさん:2008/06/27(金) 12:33:53
つーか、今時ダイアログベースなソフトなんか作るな。
620デフォルトの名無しさん:2008/06/27(金) 12:40:43
別にダイアログベースのアプリなんて質問者は言ってないけど
621デフォルトの名無しさん:2008/06/27(金) 14:02:18
XN Resource Editor
622デフォルトの名無しさん:2008/06/27(金) 14:52:38
フレームを消すにはどの関数調べたらいい?
623デフォルトの名無しさん:2008/06/27(金) 15:04:31
フレームとだけ言われても分からん
ウィンドウのフレームとか動画のフレームとか色々あるだろう
624デフォルトの名無しさん:2008/06/27(金) 15:07:17
ああ、ごめん
createwindowで作成されたウィンドウのフレーム
625デフォルトの名無しさん:2008/06/27(金) 15:15:35
DestroyWindow?
それとも枠なしウィンドウを作りたいという意味?
626デフォルトの名無しさん:2008/06/27(金) 15:19:37
分からないならレスするな
627デフォルトの名無しさん:2008/06/27(金) 15:26:23
SetWindowLong
628デフォルトの名無しさん:2008/06/27(金) 15:26:45
>>626
分からないならレスするな
629デフォルトの名無しさん:2008/06/27(金) 15:31:40
フルスクリーンにしたくてメニュー消す所まではいけたけど
フレーム消すので躓いてて

Destroyしたら全部消えた
630デフォルトの名無しさん:2008/06/27(金) 15:33:46
スタイル変更してBORDER無しのウィンドウにしたら
631デフォルトの名無しさん:2008/06/27(金) 15:38:17
WS_CAPTION と WS_THICKFRAME を外してみろ
632デフォルトの名無しさん:2008/06/27(金) 15:51:35
シリアルポートをReadFileで読んでいたら、
バッファには内容が入っているのに、
第三引数pNumberOfBytesReadがずっと0のままだったんだけど、どうしてかな?
http://yokohama.cool.ne.jp/chokuto/urawaza/api/ReadFile.html
Vistaとか関係ある?

あと、SendFileがどうしてもうまくいかないんだけど。。。
CreateFileのとき、FILE_FLAG_OVERLAPPEDフラグを立ててるんだけど、
第四引数pOverlappedをOVERLAPPED 構造体をすべて0にセットして、
APIを叩いた前後0x30100000が入ってくるんだけど、そういうもん?
633デフォルトの名無しさん:2008/06/27(金) 16:04:32
フルスクリーン無理だった

聞きすぎるのも悪いから出てきたキーワードでなんとかしてみる
ありがとう
634デフォルトの名無しさん:2008/06/27(金) 16:18:25
がんばれー
635デフォルトの名無しさん:2008/06/27(金) 19:12:29
SendFileってどのAPI? 手持ちのWindowsSDKには載ってないが。
636デフォルトの名無しさん:2008/06/27(金) 19:13:55
あと、とりあえずOVERLAPPEDのhEventはセットしといたら。
637デフォルトの名無しさん:2008/06/27(金) 19:17:51
>>632
それだけじゃ分からん。
まさか第3引数に渡している変数の型がLPDWORDじゃないだろうな?
638デフォルトの名無しさん:2008/06/27(金) 19:18:08
>>635
たぶんこれでは?
http://msdn.microsoft.com/en-us/library/ms740565(VS.85).aspx
639デフォルトの名無しさん:2008/06/27(金) 21:22:37
>>632
非同期モードで読んでるからじゃないの?

そのページに非同期での読み取られたバイト数取得方法書いてあるじゃん。
640デフォルトの名無しさん:2008/06/28(土) 09:21:40
JPG を表示しようとして

CreateStreamOnHGlobal(hGlobal,TRUE,&iStream);
OleLoadPicture(iStream,0,0,IID_IPicture,(void**)&iPicture);
iPicture->get_Handle((OLE_HANDLE*)&hBitmap);
iStream->Release(); GlobalFree(hGlobal); return hBitmap;

のようにしたら、メモリーリークが起こるのですが、
解決策を知っている方がいたら教えてください。
641デフォルトの名無しさん:2008/06/28(土) 09:55:46
WS_OVERLAPPEDとかを設定する時に使うビット演算子の質問です
WS_A | WS_B = WS_AとWS_Bのスタイルを持つ
WS_A ~ WS_B = WS_Aのスタイルを持ち、WS_Bのスタイルを解除
この覚え方で問題ないですか?

また & ^ の場合はそれぞれどう覚えたらいいですか?
642デフォルトの名無しさん:2008/06/28(土) 09:58:56
WS_A ~ WS_B って構文エラーやろ
643デフォルトの名無しさん:2008/06/28(土) 10:55:38
Style = WS_A | WS_B | WS_C
Styleは AとBとC

Style = Style & ~(WS_A | WS_C)
StyleはB
644デフォルトの名無しさん:2008/06/28(土) 10:57:27
タスクバーを外す(非表示にする)にはどうすればいいですか?
645デフォルトの名無しさん:2008/06/28(土) 11:20:46
POPUPスタイルにすればいい

ウソだけど
646デフォルトの名無しさん:2008/06/28(土) 13:57:17
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 http://www9.atwiki.jp/mainichiwaiwai/
◆毎日新聞問題の情報集積wiki
 http://www8.atwiki.jp/mainichi-matome/

つまり日本国民は
http://www.vipper.net/vip552788.jpg
647デフォルトの名無しさん:2008/06/28(土) 15:38:05
>>640
iPicture->Release();

hBitmapも一緒に破棄されるので、注意。、
648デフォルトの名無しさん:2008/06/28(土) 15:40:15
四回目にしてようやくローカル版msdnのダウンロードに成功したようだ
インストール途中で ほにゃらら.cab を取得できませんとか勘弁してくれ
MD5SUM くらいページにかいておけってんだ
649デフォルトの名無しさん:2008/06/28(土) 16:39:48
MSDNサブスクリプションの方なら、SHA1とCRC付いてるのだけどねえ。
とはいえ、サイズを見れば正常にダウンロードできたか判る気もするけど。
今時、通信途中でデータが壊れたなんて滅多にないんじゃね?
PC側のメモリやHDDの不調で内容が壊れるほうがよっぽど多い気がする。
650640:2008/06/28(土) 17:47:38
>>647

ありがとう
651デフォルトの名無しさん:2008/06/28(土) 18:20:13
TCHAR szString[20];
strcmp(szString, "abcde");

これを実行するにはどうすればいい?
652デフォルトの名無しさん:2008/06/28(土) 18:22:32
>>651
> TCHAR szString[20];
> strcmp(szString, "abcde");
>
> これを実行するにはどうすればいい?

TCHAR対応の関数をつかえばいいんじゃね?
_tstrcmp() とか、(←適当にかいたから多分別の名前)
653デフォルトの名無しさん:2008/06/28(土) 18:23:08
strcmp((const char *)szString, "abcde");
654デフォルトの名無しさん:2008/06/28(土) 18:26:39
典型的な悪い見本ですね
655デフォルトの名無しさん:2008/06/28(土) 18:27:00
>>652は間違い
>>653が正解だな
656デフォルトの名無しさん:2008/06/28(土) 18:30:28
TCHAR szString[20];
_tcscmp(szString, _T("abcde"));
657デフォルトの名無しさん:2008/06/28(土) 18:32:02
szStringが不定だから、どちらにしろ間違ってるな。
658デフォルトの名無しさん:2008/06/28(土) 18:41:24
TCHAR szString[20];
_tcscpy(szString, _T("これを実行するにはどうすればいい?"));
_tcscmp(szString, _T("abcde"));

注: UNICODEビルド専用
659デフォルトの名無しさん:2008/06/28(土) 18:49:46
注: UNICODEビルド専用って?
ANSIビルドとUNICODEビルドの両方に対応させるのが、
汎用テキストマッピングなんだけど。
660デフォルトの名無しさん:2008/06/28(土) 18:56:52
ANSIだと文字数オーバーってことじゃ?w
661デフォルトの名無しさん:2008/06/28(土) 19:06:46
>>660
正解
662デフォルトの名無しさん:2008/06/28(土) 19:29:32
>>652-
ありがとう
#define _tcscmp wcscmpってなってた
wcscmp(szString, TEXT("abcde"));
で解決
663デフォルトの名無しさん:2008/06/28(土) 19:34:06
>>662
お前は根本的に分かっていない
Win32の前にもっとC言語を勉強しろ
664デフォルトの名無しさん:2008/06/28(土) 19:41:28
根本的に kwsk
ただ関数を知らなかっただけだろ
665デフォルトの名無しさん:2008/06/28(土) 19:55:33
>>662
明示的にUTF-16を扱うのならwcscmpでいいけど、
それならTCHAR型じゃなくて、WCHAR型じゃないといけない。

基本的に、TCHARには汎用テキスト関数を使うべき。
666デフォルトの名無しさん:2008/06/28(土) 19:58:21
UTF-8で開発したいなぁ
667デフォルトの名無しさん:2008/06/28(土) 20:12:44
>>662
#ifndef _UNICODE
#define _tcscmp strcmp
#else
#define _tcscmp wcscmp
#endif
668デフォルトの名無しさん:2008/06/28(土) 20:23:42
>>666
漢字はバイトになるんだがな。
669デフォルトの名無しさん:2008/06/28(土) 20:24:35
>>668
漢字は3バイト

肝心な1文字抜けてた
670デフォルトの名無しさん:2008/06/28(土) 20:32:06
ツールバーの区切りを塗りつぶすコードなんか
書きたくないよ・・・
もう、Windows 2000での見栄えなんて
考えなくてもいいよね?
671デフォルトの名無しさん:2008/06/28(土) 20:42:57
2kはまだサポート対象OSですが何か?
672デフォルトの名無しさん:2008/06/28(土) 20:57:57
>>670
それは仕様ですで乗り切れ
673デフォルトの名無しさん:2008/06/28(土) 21:13:11
>>669
UTF-16だって、漢字は2か4バイトじゃん
674デフォルトの名無しさん:2008/06/28(土) 21:29:45
でも大体の感じは2バイトだよ。
675デフォルトの名無しさん:2008/06/28(土) 22:18:03
擦れたい嫁 lstrcmp
676デフォルトの名無しさん:2008/06/28(土) 22:30:15
いくらWin32つってもわざわざ糞遅いlstr〜系を使う奴はアホ
677デフォルトの名無しさん:2008/06/28(土) 23:21:42
知らなかったんだが、lstr*系って遅いのか?

よければ具体的な理由を教えてほしい。
後、それに変わる高速なAP(CRTじゃない)Iを教えてくれると助かる。
678デフォルトの名無しさん:2008/06/28(土) 23:48:13
その条件でなら最速でいいんじゃね?
shlwapiのより速いかどうかは流石に保障しかねるが。
679デフォルトの名無しさん:2008/06/29(日) 01:41:03
lstrcmpと速度比較するならstrcmp系じゃなくてstrcoll系だろ
680デフォルトの名無しさん:2008/06/29(日) 02:12:25
そもそもlstr〜系なんてWin16時代の遺物だろ
今更CRTを一切使わないプログラムなんて制限多すぎるだけだしそんな事して何になるんだ?
681デフォルトの名無しさん:2008/06/29(日) 02:31:10
Str系はどうですか
682デフォルトの名無しさん:2008/06/29(日) 02:54:56
基本的にCRTを使った方がいい。最近のVC++だとセキュリティ強化されているし
lstr系やStr系を使うのは、CRTが対応していないWin9x用のソフトを作るときぐらいに
した方がいいし、実際そんな機会はほとんど無かろう
683デフォルトの名無しさん:2008/06/29(日) 03:37:13
ドライバ類ってCRT使えたっけ?
684デフォルトの名無しさん:2008/06/29(日) 04:40:00
使える
685デフォルトの名無しさん:2008/06/29(日) 04:48:20
strsafe使えってことで
686デフォルトの名無しさん:2008/06/29(日) 05:41:16
>>685
strcmpとかねーだろばか
687デフォルトの名無しさん:2008/06/29(日) 11:08:13
話ぶった切るけど、ゲイツ引退か。
何かにつけて叩かれてたけど
なんだかんだですごい人だったよな
688デフォルトの名無しさん:2008/06/29(日) 11:12:08
ゲイツが引退したのでWin32APIは廃止します
689デフォルトの名無しさん:2008/06/29(日) 11:53:14
それは困る
690デフォルトの名無しさん:2008/06/29(日) 12:38:38
Win33APIになるんだよ
691デフォルトの名無しさん:2008/06/29(日) 12:59:03
WIN64APIってあるの?
692デフォルトの名無しさん:2008/06/29(日) 13:17:07
流石利益には聡い男、windowsの暗雲を察知していち早く逃げたか
693デフォルトの名無しさん:2008/06/29(日) 17:30:25
>>686
最近のVCなら、/Oiでインライン展開されるから使っても平気。
694デフォルトの名無しさん:2008/06/29(日) 18:00:53
なあここってWin32APIだから別にlstrで問題ないんじゃないか?
速度を議論するスレじゃないだろw
695デフォルトの名無しさん:2008/06/29(日) 18:18:58
Win32 APIスレだから、無条件にWin32 APIを使えというのはどうかと思う。
さて、俺はshlwapiのStrCmpを使おうか。
696デフォルトの名無しさん:2008/06/29(日) 18:26:56
シェル系はどうかとおもうぜ
697デフォルトの名無しさん:2008/06/29(日) 18:41:24
> 今更CRTを一切使わないプログラムなんて制限多すぎるだけだしそんな事して何になるんだ?
「一切」とは想わないが、コンパイラ依存や_mbs系とかは避けたい
文字列比較がSBCS/MBCSとUNICODEで異なってていいのかとも思う
698デフォルトの名無しさん:2008/06/29(日) 21:02:48
gccで通らないコードはクソ
699デフォルトの名無しさん:2008/06/29(日) 21:19:13
Win32なんて実質VC++専用みたいな物だろうが
他のコンパイラがVC++に合わせればいいんだよ
700デフォルトの名無しさん:2008/06/29(日) 21:31:04
EU諸国のお偉いさん方はそれを許さないわけです
701デフォルトの名無しさん:2008/06/29(日) 21:58:31
Ctrl+Alt+Deleteを押したらタスクマネージャが出てくるけど
あれを一時的に解除(タスクマネージャが出てこないように)するにはどうすればいい?
702デフォルトの名無しさん:2008/06/29(日) 22:13:03
タスクマネージャはCtrl+Shit+Esc
703デフォルトの名無しさん:2008/06/29(日) 22:14:25
VistaではCtrl+Alt+Delete押してもタスクマネージャは出ないが
それはどうするつもりだ?(もっと凄いものが出てきちゃう)
704デフォルトの名無しさん:2008/06/29(日) 22:15:05
↑w
705デフォルトの名無しさん:2008/06/29(日) 22:24:26
>>702
キーボードに Shit キーが無いのでタスクマネージャが出せません><
706デフォルトの名無しさん:2008/06/29(日) 22:30:01
クソ!どうしてShitキーが見当たらないんだ!
707デフォルトの名無しさん:2008/06/29(日) 22:32:31
>>701
そのホットキーはセキュリティ確保のため変更するべきではないとおもうな。
708デフォルトの名無しさん:2008/06/29(日) 22:37:26
>>701
APIフック
709デフォルトの名無しさん:2008/06/29(日) 22:43:22
そのコマンドは乗っ取り不可じゃなかったっけ?
できるのか?
710701:2008/06/29(日) 22:46:48
ありがとう
俺の環境はWinXP Home SP3
Ctrl+Alt+Deleteでタスクマネージャでてくるよ

msg.message見てみたけどCtrl+Altまではメッセージ受信してるけど
次にDelete押しても受信せずにタスクマネージャ起動してた

>>707
ねんのために別のキーストロークに同じ動作セットしてから解除してみる

>>708
一応調べるだけ調べてみる
711デフォルトの名無しさん:2008/06/29(日) 22:47:36
そもそもタスクマネージャを出したくない理由は何?
マルウェアでも作ってて変なプロセスが起動してるのを見られたくないとか?
712デフォルトの名無しさん:2008/06/29(日) 23:07:59
その理由を言ったところで>>711は教えないだろうな
713デフォルトの名無しさん:2008/06/29(日) 23:12:35
タスクマネージャを、起動して終了するだけの自作プログラムに置き換え。
714デフォルトの名無しさん:2008/06/29(日) 23:15:07
フックよりも高度な技が必要になる
できないことはないけど通常のアプリケーションの範疇からすこしはずれる
http://nienie.com/~masapico/doc_DisableSAS.html
715701:2008/06/29(日) 23:30:53
スクリーンセーバーもどきを作ってて、それをタスクマネージャから終了されたくないんだ
キー・マウスの信号を受信しても終了しないようにしてる
終了するためにはパスが必要で、例外が右上の×ボタン・タイトルバーandタスクバー右クリックの閉じる
フルスクリーンからウィンドウスクリーンへ切り替える(メニューから)のにもパスが必要にしてある

フルスクリーン時のメニューはマウスポインタがメニューが表示される位置にきたら表示するようにしてる
716デフォルトの名無しさん:2008/06/29(日) 23:41:11
>>706-707
なんかワロタwwwwwwwwwwwww
717716:2008/06/29(日) 23:42:02
ミスった
>>706-707 ×
>>705-706 ○
718デフォルトの名無しさん:2008/06/29(日) 23:52:46
そりゃセキュリティツールの類か?
719701:2008/06/30(月) 00:02:34
うん、セキュリティ類
720デフォルトの名無しさん:2008/06/30(月) 01:00:17
なんだ、ただの悪戯ソフトか

他人のPCに仕込んでおいて

*「うわ〜、パソコンがおかしくなった><」
701「ほら、こうすれば直るよ」
*「さすが701さんすごい!」

こういう流れだな
721デフォルトの名無しさん:2008/06/30(月) 01:20:33
単純に技術的な勉強したいってだけなら
そういうの知っててもいいんじゃね?
722デフォルトの名無しさん:2008/06/30(月) 01:55:42
自前の通信をするプログラムでWinsockのLSPを通さない方法はありますか?
セキュリティソフトが通信の邪魔をしてしまうケースがあるのでWinsockを直接使うようにしたいです。
レジストリの操作はしないで特定のプログラム起動時に使わないようにできるでしょうか。
723デフォルトの名無しさん:2008/06/30(月) 02:10:32
724701:2008/06/30(月) 02:13:48
>>714
ありがとう
なんとか再現はできたけど
レジストリいじらないでand.exeファイル単体でやる方法はない?
725デフォルトの名無しさん:2008/06/30(月) 02:19:42
なんで>>720みたいなくだらん事言う奴がいるんだろな
726デフォルトの名無しさん:2008/06/30(月) 02:37:39
そうです。そちらは過疎ってたのでこちらにしました。二重ですいません。
727デフォルトの名無しさん:2008/06/30(月) 03:37:32
>>725
くだらん質問する奴がいるから
728デフォルトの名無しさん:2008/06/30(月) 03:59:04
一時退席してる時にそのプログラム実行しといて誰に触られてもおkなようにしたいんだろ
いくらフルにしてパスつけたってtskmgrから終了されたら意味ないしな
729デフォルトの名無しさん:2008/06/30(月) 05:22:11
馬鹿か?
ロックしとけばいいだけだろうが
730デフォルトの名無しさん:2008/06/30(月) 07:00:58
一般アプリがSAS触れるなら、全然SASじゃねーじゃん。
あれは「確実にログイン画面であること(どっかのアプリが
出した偽ウインドウではないこと)」の保証のためにあるんだから。
 それと、ユーザー画面で「ようこそ画面を使用する」を切ったり
ドメイン環境にあれば、直接はタスクマネージャでないから。
731デフォルトの名無しさん:2008/06/30(月) 07:11:26
どいつもこいつも能書きはいいからさっさと教えろよ
分からないならレスするな
732デフォルトの名無しさん:2008/06/30(月) 07:16:31
わからないなら黙っててください
733デフォルトの名無しさん:2008/06/30(月) 07:20:47
知らない奴がどうでもいい知識をひけらかすのは目障りなんだよな
734デフォルトの名無しさん:2008/06/30(月) 09:35:01
スクリーンセーバーのパスワードロックだけじゃ安心出来ない環境の方を
どうにかするべきだろう。
735デフォルトの名無しさん:2008/06/30(月) 09:48:31
スクリーンセーバーのパスワードロックを知らないんだろう
736デフォルトの名無しさん:2008/06/30(月) 10:34:42
知らないならレスしないでください
737デフォルトの名無しさん:2008/06/30(月) 10:40:29
すいません
738デフォルトの名無しさん:2008/06/30(月) 14:56:39
SetWindowPosのZ順って、
特定ウィンドウのすぐ手前を指定する方法は無いのでしょうか?

A,B,CのウィンドウがZ順に並んでいる際、CをBのすぐ手前に移動したいとすると、
わざわざAのウィンドウを探して、hWndInsertAfterに使うしか無いのでしょうか?
739デフォルトの名無しさん:2008/06/30(月) 15:08:11
わざわざ探すといっても、GetWindowで一発では
740デフォルトの名無しさん:2008/06/30(月) 15:51:52
C++ & VS2008 でメモリマップドファイルについての質問です。
以下のようなメンバ関数を持つクラスを定義し、そのクラスのオブジェクトを2つ作って
それぞれ異なるファイルを開こうとするとMapViewOfFile がエラーを返してきます。
2つのプログラムで1つのメモリを共有する手段としてあちこちで紹介されていますが、
逆に1つのプログラムで2つ開くことはできないんでしょうか?

void MemoryMappedFile::Open(const std::string& FILENAME)
{
filehandle_ = CreateFileA(FILENAME.c_str(), GENERIC_READ|GENERIC_WRITE,
0, 0, OPEN_EXISTING, 0, 0);
if(filehandle_ == INVALID_HANDLE_VALUE)
{
// エラー1
}
map_ = CreateFileMapping(filehandle_, 0, PAGE_READWRITE, 0, 0
,reinterpret_cast<LPCWSTR>(FILENAME.c_str()));
if(map_ <= 0)
{
// エラー2
}
SYSTEM_INFO system_info;
GetSystemInfo(&system_info);
view_ = static_cast<void*>(MapViewOfFile(map_, FILE_MAP_ALL_ACCESS
, 0, system_info.dwAllocationGranularity, 0));
if(view_ == NULL)
{
// エラー3
}
}
741デフォルトの名無しさん:2008/06/30(月) 16:00:25
>>740
MapViewOfFileの引数がおかしくないか?
742740:2008/06/30(月) 16:08:18
追加です。
「1つ目のファイルは開けるけど2つ目のファイルは開けない」状態です。
開く順序を変えても、2回目のMapViewOfFileでNULLが帰ってきます。
743デフォルトの名無しさん:2008/06/30(月) 16:10:49
GetLastErrorの戻り値くらい書こうよ
744デフォルトの名無しさん:2008/06/30(月) 16:19:38
>>743それぐらい自分で試して下さい
745デフォルトの名無しさん:2008/06/30(月) 16:23:16
FILE_SHARE_READ

FILE_SHARE_WRITE
は?
746デフォルトの名無しさん:2008/06/30(月) 17:48:05
>>745
別のファイルを開こうとしてるんじゃまいか
747デフォルトの名無しさん:2008/06/30(月) 18:17:13
排他モードで開いてるから、ファイルが閉じられるまで誰も開けない。
748701:2008/06/30(月) 18:50:08
オリジナルのものを表示させてたいからスクリーンセーバーは使わない
オリジナルのものを表示したままパス入力させる
パス入力失敗したら入力された時間・文字列を表示させる

仕様もオリジナルにしたいからスクリーンセーバーは使うつもりはない
749デフォルトの名無しさん:2008/06/30(月) 18:51:14
後出しのクセに偉そうですね。
スクリーンセーバーをろくに知らないから使わないだけだろ?
750701:2008/06/30(月) 18:57:25
>>748は偽者
751デフォルトの名無しさん:2008/06/30(月) 19:03:41
>>749
何も答えて無いクセに偉そうですね
APIもろくに知らないから煽るだけだろ?
752デフォルトの名無しさん:2008/06/30(月) 19:08:04
訳:かまってほしいな
753デフォルトの名無しさん:2008/06/30(月) 19:13:27
>>742
その2つ目のファイルは同じ?
1つ目と2つ目逆にしてみるとどうなる?

一応試したが、2つ開けないなんてことは無かった。
754デフォルトの名無しさん:2008/06/30(月) 19:15:22
って順序変えてるって書いてるな。
ファイルのサイズは十分な大きさがある?
755デフォルトの名無しさん:2008/06/30(月) 19:20:59
もう一度言うけど、MapViewOfFileの引数はそれでいいのか?
オフセットの意味わかってる?
そういう風にマップしたいなら、それでいいんだけど。
756デフォルトの名無しさん:2008/06/30(月) 19:22:46
とにかく GetLastError()の結果が無いと何ともいえない。
757デフォルトの名無しさん:2008/06/30(月) 21:07:05
>>701
Ctrl+Alt+Delete・タスクマネージャ無効にしなくても
タスクマネージャから終了メッセ受信したら弾いたらいいんでないの
758701:2008/06/30(月) 22:27:06
方法を知らない人が答えないでくれよ
759デフォルトの名無しさん:2008/06/30(月) 22:29:22
訳:かまってほしいな
760デフォルトの名無しさん:2008/06/30(月) 22:39:19
>>759
かまってほしいのはお前の方だろ
761デフォルトの名無しさん:2008/06/30(月) 22:41:09
↑かまうなクズ
762デフォルトの名無しさん:2008/06/30(月) 22:50:40
スクリーンセイバーなんてライブラリ使えよ。
Vista専用だけど。
763デフォルトの名無しさん:2008/06/30(月) 23:06:50
764デフォルトの名無しさん:2008/06/30(月) 23:32:30
>>762
レスも読まず無知のくせにどうでもいい知識ひけらかすな
キモイんだよ
765デフォルトの名無しさん:2008/06/30(月) 23:41:13
いやあ照れるねw
さあ遠慮せずにもっと褒めたまえ。
766デフォルトの名無しさん:2008/06/30(月) 23:46:57
タスクマネージャから終了したら

WM_DESTROY:
MessageBox(0,0,0,0);

って記述してもウィンドウが消えてからメッセージボックス表示されるね
767701:2008/06/30(月) 23:48:52
質問に答える気が無いなら黙っていてくれないか
768デフォルトの名無しさん:2008/06/30(月) 23:50:12
DirectXで最大化+描画になるよね・・・たぶん
769デフォルトの名無しさん:2008/06/30(月) 23:50:26
回答を理解しなかったゴミは黙っていてくれないか
770701:2008/07/01(火) 00:14:21
>>750,758,767は俺じゃない

その他の人ありがとう
とりあえず今の所は
WM_CLOSE:
break;
で回避した

でもタスクマネージャから終了した場合しばらくして
「このプログラムは応答していません」って出るんだが
出なくなるようにできない?
771デフォルトの名無しさん:2008/07/01(火) 00:22:55
>>770
できねーよ

つうかタスクマネージャで終了できないプロセスなんて常識で考えれば不可能な事ぐらい分かるだろ
ウザイからもう二度と来るなクズ
772デフォルトの名無しさん:2008/07/01(火) 00:23:32
さっさと消えろ
773701:2008/07/01(火) 00:27:13
できないのか、ありがとう
774デフォルトの名無しさん:2008/07/01(火) 00:28:40
>>773
一日前に結論でてるだろうが
お前のせいでスレが荒れたのだから責任取れ
775デフォルトの名無しさん:2008/07/01(火) 00:29:16
>>771
お前が昨日の時点で答えてたらこんなに長引く事にはなってなかったのにな
俺からすればお前がウザイから二度と来るなよクズw
776デフォルトの名無しさん:2008/07/01(火) 00:34:10
>>774
お前は>>701に何を求めてるんだ?
どう責任とれと?

一部異常者いますね
777デフォルトの名無しさん:2008/07/01(火) 00:34:54
(荒らしてた張本人がよく言うわ)
778701:2008/07/01(火) 00:35:45
責任ってなあw そもそも釣りだったんだがw
まあここの連中の知識レヴェルの低さが分かったし悪く思わないでくれよ
779デフォルトの名無しさん:2008/07/01(火) 00:36:41
いちいち構うな黙れ
780デフォルトの名無しさん:2008/07/01(火) 00:49:38
すいません
781デフォルトの名無しさん:2008/07/01(火) 01:08:04
乗り遅れたか
782デフォルトの名無しさん:2008/07/01(火) 01:11:45
なりすまししてる奴口調でばればれw
783デフォルトの名無しさん:2008/07/01(火) 01:12:00
       ____
     /      \
   /  _ノ  ヽ、_  \
  / o゚((●)) ((●))゚o \  ほんとは技術的な話がしたいんだお…
  |     (__人__)'    |
  \     `⌒´     /

       ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  でも知識がなくて話に入れないお…
  |     (__人__)    |
  \     ` ⌒´     /

       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \   だから荒らすお!
  |     |r┬-|     |
  \      `ー'´     /
784デフォルトの名無しさん:2008/07/01(火) 01:21:07
タスクマネージャのexe削除すればよくね?
785デフォルトの名無しさん:2008/07/01(火) 01:26:54
それじゃ一時的解除にならんだろ
786デフォルトの名無しさん:2008/07/01(火) 01:45:37
>>785
解除するときは「WindowsのCDを入れてください」でおk
787デフォルトの名無しさん:2008/07/01(火) 01:45:53
>>782
俺のレス番当ててみ
788デフォルトの名無しさん:2008/07/01(火) 01:48:54
789デフォルトの名無しさん:2008/07/01(火) 01:51:09
つまらんよ
790デフォルトの名無しさん:2008/07/01(火) 01:52:09
訳:かまってほしいな
791デフォルトの名無しさん:2008/07/01(火) 02:07:05
>>790
かまってほしいのはお前の方だろ
792デフォルトの名無しさん:2008/07/01(火) 02:21:34
ループすんなボケ
793デフォルトの名無しさん:2008/07/01(火) 02:50:16
HaltEbbThread(&this);
794デフォルトの名無しさん:2008/07/01(火) 03:10:19
>>793
こういうの書く奴って面白いと思ってるのか?
795デフォルトの名無しさん:2008/07/01(火) 03:13:51
ってか、タスクマネージャの有効無効を一時的に切り替えたらいい
DisableTaskMgr DWORD 0 or 1
796デフォルトの名無しさん:2008/07/01(火) 03:15:20
終了されたくないならプロセス隠すか
適当なプロセスにdllインジェクションでもしちゃえばいいのに
797デフォルトの名無しさん:2008/07/01(火) 03:17:40
試してから言え
798デフォルトの名無しさん:2008/07/01(火) 03:33:19
>>796
こういうのって最近のセキュリティソフトだと警告出たり妨害されないか?
799デフォルトの名無しさん:2008/07/01(火) 03:34:31
っていうか、自分でOS作ったらいいんじゃね?
800デフォルトの名無しさん:2008/07/01(火) 03:44:31
>>799
そうだよな。
Windowsと完全互換で、Ctrl+Alt+Deleteでタスクマネージャが出ない以外は同じに作っておけばいいだけだし。
801デフォルトの名無しさん:2008/07/01(火) 04:37:56
795の方法が一番手っ取り早いんじゃね?
802701:2008/07/01(火) 05:40:00
レジストリいじってタスクマネージャON・OFF切り替える事にした
>>795ありがと

void TaskMgrOFF(DWORD dwValue) // dwValue 0でON、1でOFF
{
HKEY hReg;

RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hReg, NULL);
RegSetValueEx(hReg, TEXT("DisableTaskMgr"), 0, REG_DWORD, (const BYTE *)&dwValue, 4);
RegCloseKey(hReg);
}
803デフォルトの名無しさん:2008/07/01(火) 05:42:26
>>771
無知晒し乙

>>802
ソース貼るなよw
804デフォルトの名無しさん:2008/07/01(火) 05:54:09
↑話を理解してない馬鹿
805デフォルトの名無しさん:2008/07/01(火) 05:56:35
>>802はタスクマネージャを呼べなくした
>>771はタスクマネージャから終了ry
806デフォルトの名無しさん:2008/07/01(火) 06:20:01
>>803
うわ・・・w
807デフォルトの名無しさん:2008/07/01(火) 06:25:02
>>803
これはひどい
808デフォルトの名無しさん:2008/07/01(火) 06:28:52
>>803
アホ?w
809デフォルトの名無しさん:2008/07/01(火) 06:39:48
>>804-808
馬鹿はレスしなくていいよ
810デフォルトの名無しさん:2008/07/01(火) 06:42:36
↑馬鹿
811デフォルトの名無しさん:2008/07/01(火) 06:55:05
ttp://www.microsoftpdc.com/Agenda/Sessions.aspx
>Windows 7: Graphics Advances
>Windows 7 enables you to advance the graphics capabilities of your applications while carrying forward existing investments in your Win32 codebase, including GDI and GDI+.
>New enhancements to DirectX let Win32 applications harness the latest innovations in GPUs and LCD displays, including support for scalable, high-performance, 2D and 3D graphics, text, and images.
>Also learn how to leverage the GPU’s parallelism for general-purpose computation such as image processing.

どう思う?
Windows 7で、GDIやGDI+にGPUによるサポートがくるように読めるんだけど、
XP以前のようにドライバレベルではなく、
DirectXを使って汎用的に実装されるのだろうか。

だとして、既存のバイナリがそのまま恩恵を受けられるのか、
あるいは修正が必要なのか。
812デフォルトの名無しさん:2008/07/01(火) 07:07:04
>>811
それはここで質問する事か?
813デフォルトの名無しさん:2008/07/01(火) 07:11:12
はい
814デフォルトの名無しさん:2008/07/01(火) 07:15:32
>>812
いや、他に適当なスレもないし。
815デフォルトの名無しさん:2008/07/01(火) 10:04:32
>>811
Vistaで統合されると思っていたのにガッカリしてたところだよ

>既存のバイナリがそのまま恩恵を受けられるのか

M$的には原則そのままだろう
最適化ヒントをアプリが与えるためのAPIが追加されるかもしれない
Vistaはそう
816デフォルトの名無しさん:2008/07/01(火) 11:08:56
701を叩いてた奴等、701が解決したらもう叩かないんだな
自分は無知だから解決されたら頭が上がりませんってかw

そんな奴がレスするなよ目障りだから
817811:2008/07/01(火) 12:30:59
>>815
問題は下位互換性なんだよね。
Vistaのリリースによって、世の中には、
一度GetDCして、その後ReleaseDCせずに使いまわしている、
糞なソフトウェアがたくさんあると判明したし(Aeroではうまく動かない)

まあ、MSのことだから、気の毒なぐらい努力するんだろうけど。
818デフォルトの名無しさん:2008/07/01(火) 12:40:13
>>817
Releaseせずに使いまわしてみたら指定したフォントじゃなくなったしな
わかりやすく言うと バグった
819デフォルトの名無しさん:2008/07/01(火) 12:51:36
>>817
それってvistaのバグじゃないの?
820デフォルトの名無しさん:2008/07/01(火) 12:54:27
>>819
だから「Vistaのリリースによって」って書いてあるじゃん
821デフォルトの名無しさん:2008/07/01(火) 13:07:59
UACと同様に、行儀の悪いコードを粛清するために
わざと入れたんじゃないのか?w
822デフォルトの名無しさん:2008/07/01(火) 13:08:06
>>819
ちげーよ。
Vista以前から、GDIはバッチ処理されるものだったんだよ。
どのくらい溜め込むかを設定するAPIもあったはず。
EndPaint、ReleaseDCを呼び出したということは、
Windowsに溜め込んでる描画も全部実行していいと伝えるということだ。

Vistaでは、一般的なPCのVRAM容量も増えたし、
デスクトップコンポジションのために、すべてのトップレベルウインドウにVRAMからバッファ割り当ててる。
問題は、あるウインドウがいつ描画を完了したのか(スクリーンに反映して良いのかどうか)、どうやって知れば良いのかということだ。
EndPaint、ReleaseDCがそのタイミングなわけだ。

なにもVistaで実装が変わったとはいえ、意味を変えたわけじゃない。
823デフォルトの名無しさん:2008/07/01(火) 13:26:02
ときどきでいいからGdiFlushのことも思い出してください
824デフォルトの名無しさん:2008/07/01(火) 13:31:16
>>823
一度も使ったことない
825デフォルトの名無しさん:2008/07/01(火) 13:50:26
Microsoft Visual C++ 2008 Express EditionでSpy++を実行するにはどうすればいい?
826デフォルトの名無しさん:2008/07/01(火) 13:56:19
MSからフリーでダウンロードできる Windows Server 2003 SP1 Platform SDK には
ついてた気がした。これ入れてみては。
827デフォルトの名無しさん:2008/07/01(火) 14:22:08
SDKのは無印Spyじゃなかったっけ?
828デフォルトの名無しさん:2008/07/01(火) 16:28:33
>>817
俺の知る限りCS_OWNDCフラグを指定していれば使いまわしても問題なかったはずだが、それもダメになってるのか?
829デフォルトの名無しさん:2008/07/01(火) 19:28:23
>>811
本の虫のヒキコモデブオタニートが沸いていたのか
830デフォルトの名無しさん:2008/07/01(火) 20:32:31
>>811
10月過ぎた頃にはMVPがネタにするだろうなと書き込もう思ったら早速書いててワロタ
831デフォルトの名無しさん:2008/07/01(火) 21:25:56
NYARURUさんがそんなん書いてたな
832デフォルトの名無しさん:2008/07/01(火) 21:38:06
ぶっちゃけVista以降の「GPUを有効活用する描画」ってほとんどが.NET (WPF)でないと意味無い気がする

てかWindows7でGDIにもGPUサポートが入るなら、少なくともWin95以降の歴代Windowsの中で
Vistaが唯一ソフトウェア処理って事になるけど、結局MSは何がしたかったのだろうか
833デフォルトの名無しさん:2008/07/01(火) 21:56:05
Ctrl+Aが押されたくない場合はどうしてる?
ホットキーで空回してる?
他のやり方も場合はどんなやりかたしてる?
834デフォルトの名無しさん:2008/07/01(火) 22:00:54
>>832
ドライバに依存するから、サポートしてなけりゃXP以前でもソフトウェア処理
最近のオンボードVGAだとサポートされてないものもあったり
835デフォルトの名無しさん:2008/07/01(火) 22:07:36
オンボードVGA なんてゴミです
836デフォルトの名無しさん:2008/07/01(火) 22:16:07
そうはいうがな、大佐
837デフォルトの名無しさん:2008/07/01(火) 22:22:27
貧乏ライトユーザを切り捨てるんですか!
838デフォルトの名無しさん:2008/07/01(火) 22:28:35
全く関係ないがGPUとはNVIDIA語であってATI(AMD)は特に呼称は決めていなかったはず
839デフォルトの名無しさん:2008/07/01(火) 22:28:43
ULPCなんかだと悲惨なことになりそう
840デフォルトの名無しさん:2008/07/01(火) 22:35:49
>>838
つーか元ネタ的にはPSのCPU,GPU,SPUなんだろうかやっぱり。
841デフォルトの名無しさん:2008/07/01(火) 22:44:21
ha?
842デフォルトの名無しさん:2008/07/01(火) 22:46:48
HA?
843デフォルトの名無しさん:2008/07/01(火) 22:59:04
>>838
ATIはVPUって言ってなかったか?
844デフォルトの名無しさん:2008/07/01(火) 23:07:17
いまはAMDATIもGPUを使ってる
845デフォルトの名無しさん:2008/07/02(水) 00:01:21
目を凝らさないとCとGの区別が付かないから
別の名前付けてほしいんだよなぁ
846デフォルトの名無しさん:2008/07/02(水) 00:03:35
CBU
847デフォルトの名無しさん:2008/07/02(水) 00:06:05
>>845
お前の視力の方が問題だろ
848デフォルトの名無しさん:2008/07/02(水) 00:06:27
VPU、VGA、PPU、GPU
Video、Picture、Graphic
どう使い分けたら良いのかさっぱりだ。
849デフォルトの名無しさん:2008/07/02(水) 00:59:32
VPGAPU (Video Picture Graphics Accelerator Processor Unit) でおk
850デフォルトの名無しさん:2008/07/02(水) 01:57:07
>>847
人の身体の障害の事をそう簡単に言うなボケ
851デフォルトの名無しさん:2008/07/02(水) 02:05:44
>>850
お前一人の為に世界中の"GPU"の表記が変わるかボケ
852デフォルトの名無しさん:2008/07/02(水) 02:52:01
とりあえずGとCの区別のつけやすいフォントでも探したほうが良くね?
853デフォルトの名無しさん:2008/07/02(水) 08:50:19
小利口ではあるが、アンマリ利口ではない振る舞いだな。
854デフォルトの名無しさん:2008/07/02(水) 09:45:32
名前を変えるのではなく、「G」の形をまるっきり変えてしまうのがいいだろう。
ЮPU とか
855デフォルトの名無しさん:2008/07/02(水) 09:46:34
>>854
10 に見えるから却下
856デフォルトの名無しさん:2008/07/02(水) 09:57:57
老眼は文字サイズ大きくしとけ
857デフォルトの名無しさん:2008/07/02(水) 12:27:42
>>851
誰も変えろとは言ってないw
858デフォルトの名無しさん:2008/07/02(水) 15:20:30
859デフォルトの名無しさん:2008/07/02(水) 15:59:02
〜〜してほしいって言ってるだけだろ
煽り目的なら消えろ
860デフォルトの名無しさん:2008/07/02(水) 16:31:06
子供の喧嘩かよw
861デフォルトの名無しさん:2008/07/02(水) 16:42:53
↑馬鹿
862デフォルトの名無しさん:2008/07/02(水) 16:49:12
馬鹿ってゆうやつのがバカなんだもん
863デフォルトの名無しさん:2008/07/02(水) 17:03:50
↑普通
864デフォルトの名無しさん:2008/07/02(水) 18:02:34
.NETを普及させたいMSの陰謀なんだろうか
865デフォルトの名無しさん:2008/07/02(水) 18:37:20
>>864
今や.NETベースの方がWin32SDKベースでの開発よりも普及してるだろ
866デフォルトの名無しさん:2008/07/02(水) 18:57:24
フルスクリーンゲームとかしてる時に間違ってウィンドウズキー押したら最小化してしまうんだが
なんとかしてゲーム中だけウィンドウズキー無効にできない?

RegisterHotKeyでは無理だった
867デフォルトの名無しさん:2008/07/02(水) 18:59:51
>>866
ゲーム中だけウィンドウズキーを取り外せばいいんじゃね
868デフォルトの名無しさん:2008/07/02(水) 19:04:13
そのゲームを書いてる人の立場なのか、Winキー無効にするソフト作りたいのか、
単にゲームのプレーヤーで方法が知りたいだけなのかどれ?
869デフォルトの名無しさん:2008/07/02(水) 19:09:51
>>866
実行したいだけならKeySwapでググると吉
870デフォルトの名無しさん:2008/07/02(水) 19:46:32
>>865
じゃあWin32を抹殺したいMSの陰謀
871デフォルトの名無しさん:2008/07/02(水) 19:53:33
マウスカーソルの形を自分の作った絵のものに変えるにはどうすればいいですか?
872デフォルトの名無しさん:2008/07/02(水) 20:03:23
.NETはWin32APIのラッパー
Win32APIが無けりゃ動かない
873デフォルトの名無しさん:2008/07/02(水) 20:05:00
874デフォルトの名無しさん:2008/07/02(水) 20:17:27
>>872
現状は、でしょ。
875デフォルトの名無しさん:2008/07/02(水) 21:08:54
無くなる計画もない
876デフォルトの名無しさん:2008/07/02(水) 21:39:53
877デフォルトの名無しさん:2008/07/02(水) 23:33:27
ありがとう

>>868
自分はプレイヤーで、Winキーを押しても最小化しないように(WINキーに反応しないように)したいんだ
WinAPIでなんとかなるんかなと思って

>>866
こっちの方法も一応手つけてみる
878デフォルトの名無しさん:2008/07/03(木) 00:22:11
APIフック
879デフォルトの名無しさん:2008/07/03(木) 04:10:23
>>878
全角厨は黙ってろ
880デフォルトの名無しさん:2008/07/03(木) 06:37:51
>872
monoの立場っていったい・・・
881デフォルトの名無しさん:2008/07/03(木) 10:31:08
グローバルフックで殺せなかったっけ?
882デフォルトの名無しさん:2008/07/03(木) 12:18:15
殺すとか・・・もっとマシな表現できないのかねぇ
883デフォルトの名無しさん:2008/07/03(木) 12:19:54
殺害?
884デフォルトの名無しさん:2008/07/03(木) 12:22:50
キルする
885デフォルトの名無しさん:2008/07/03(木) 12:47:10
キルる
886デフォルトの名無しさん:2008/07/03(木) 12:49:42
デストローイ
887デフォルトの名無しさん:2008/07/03(木) 12:55:13
あぼーん
888デフォルトの名無しさん:2008/07/03(木) 15:07:35
ぶっ死ろす
889デフォルトの名無しさん:2008/07/03(木) 15:21:30
投す
890デフォルトの名無しさん:2008/07/03(木) 15:28:34
キルビル
891デフォルトの名無しさん:2008/07/03(木) 16:29:19
全員通報しますた
892デフォルトの名無しさん:2008/07/03(木) 17:59:58
>>880
monoだってWin32APIの代替としてWINEを使ってるから。
893デフォルトの名無しさん:2008/07/03(木) 18:20:05
何年前の話だよ
894デフォルトの名無しさん:2008/07/03(木) 18:36:40
895デフォルトの名無しさん:2008/07/03(木) 18:38:53
C++相談室でこっちと言われたので転載しちゃいます。。

現在プログラムでマウスクリックをさせるものを作っていて、
ボタンのクリックなどはできるようになったのですが、
タブ(TabControl)の切り替えができません。

だれかご存知の方がいましたらご教授いただけると助かります。。

以下プログラム抜粋----------------------------------
POINT pt = {任意の座標X , 任意の座標Y};
HWND hWnd = ::WindowFormPoint(pt.x , pt.y);

// マウスを任意の位置に移動
SetCursorPos(pt.x , pt.y);
// クリック (Down -> UP)
::SendMessage(hWnd , WM_LBUTTONDOWN , 0 , MAKELPARAM(pt.x , pt.y));
::SendMessage(hWnd , WM_LBUTTONUP , 0 , MAKELPARAM(pt.x , pt.y));

よろしくお願いします。
896デフォルトの名無しさん:2008/07/03(木) 19:00:09
>>895
SendMessageする前に、
::ScreenToClient(hWnd, &pt);
してみ
897デフォルトの名無しさん:2008/07/03(木) 19:03:37
SetCursorPosも無くてもいい気がするが、まあそれはプログラムの目的によるか。
898デフォルトの名無しさん:2008/07/03(木) 19:30:39
勝手にカーソルを移動するソフトなんて迷惑極まりない
899デフォルトの名無しさん:2008/07/03(木) 19:35:09
>>898
PC使えない人向けにいろいろとワンタッチにしたいと思うこともある
texとワープロソフトとレタッチソフトと出力ごとにプリンタ出力先と出力設定の変更

ハードウェアを直接触る部分は諦めるしかないけど
それ以外の操作を誰でもできるようにとか
900デフォルトの名無しさん:2008/07/03(木) 19:37:54
でもVNCとかシナジーみたいなのを
作ってるのかもしれないし
901デフォルトの名無しさん:2008/07/03(木) 23:24:54
ちょっとお尋ねしたいのですが、テキストエディタソフトを作っていたら、何にもそういう風に意図していないのにCtrl+Vでクリップボードからコピーできてしまうという現象に遭遇しました。
サクラエディタでも試してみたところ、サクラエディタの貼り付けのショートカットキーはF9と書いてあるのに、Ctrl+Vで貼り付けできてしまいました。
これってどういうことなのでしょうか??
902デフォルトの名無しさん:2008/07/03(木) 23:32:14
君は何を言っているの?
903デフォルトの名無しさん:2008/07/03(木) 23:34:09
>>901
WM_PASTE を握りつぶしてないって事では?
904デフォルトの名無しさん:2008/07/04(金) 01:03:27
将来的には、Win32APIでゴリゴリ書いたものよりも
.NET Framework使った方が軽くなったりするんだろうか

別に.NET Frameworkが基底になるのは構わないが
既存のアプリを修正するのが面倒くさい
905デフォルトの名無しさん:2008/07/04(金) 01:24:01
>>904
CPUがx86でなくなって、x86コードがエミュレーションになったら、
そうなるかもしれん。10年以上先だと思うが。
906デフォルトの名無しさん:2008/07/04(金) 08:46:51
現状のx64版Windowsで、x86アプリと.NETアプリだとどっちが軽いの?
907895:2008/07/04(金) 09:01:21
>>896
ScreenToClient試しましたがだめでした。
ボタンクリックの位置もずれてしまいました。

>>897
MSDNか何かを見ていた時にカーソルがコントロール上にあることを
確認しているととれる文章をどこかで見た気がしたから一文入れてみた

>>898
連続試験をやらせるアプリなんで誰も使わないPCでやるんですわぁ

某ソフトだとタブも切り替えられているんでできるとは思うんだけど
どうやるのかわかりませぬ。。。
908デフォルトの名無しさん:2008/07/04(金) 09:02:19
x86アプリ
909デフォルトの名無しさん:2008/07/04(金) 09:38:41
>>907
何がどう駄目だったんだよ。
こっちは実際に検証して動作確認した上で答えてるんだぜ。

駄目ならこっちで再現できるだけの情報出せよ。
910デフォルトの名無しさん:2008/07/04(金) 09:39:51
優しいなあ
911デフォルトの名無しさん:2008/07/04(金) 09:40:23
あとクリックがずれるって何だ?
マウスの位置指定はScreen座標、コントロールへのメッセージはクライアント座標だぜ?
912895:2008/07/04(金) 10:04:03
>>909
動作確認までして頂いて助かります。

>駄目ならこっちで再現できるだけの情報出せよ。
・足りない情報を記述すると、製作しているアプリAで他のアプリBの操作を自動で行う。
上記記述が無くて申し訳なかったです。

ちなみに
ScreenToClientを使用前はアプリBのボタンの上にカーソルが動いたが
使用後はアプリBのボタンとは違う場所にカーソルが動く。
913デフォルトの名無しさん:2008/07/04(金) 10:13:18
ちょっとはスクリーン座標とクライアント座標の違いを調べろ
SendMessageの前ってのは、

SetCursorPos(・・・
::ScreenToClient(・・・  ←ここに入れるんだぞ?
::SendMessage(・・・
914デフォルトの名無しさん:2008/07/04(金) 10:14:33
つーか座標使いまわすなら保存しとけや
915デフォルトの名無しさん:2008/07/04(金) 10:21:16
>・足りない情報を記述すると、製作しているアプリAで他のアプリBの操作を自動で行う。
>上記記述が無くて申し訳なかったです。

もうバカかと。
そのくらいわかってるよ。
足りないのは、具体的に失敗したコードをだしたり、
そのアプリBで使ってるタブコントロールは標準のものなのかとか、

なんでタブコントロールで動作しないかというと、
タブコントロールはボタンクリックしたらどのタブが押されたのか調べるために
メッセージ内のマウス座標を使ってるのに、その座標指定が間違ってるから。
で、こっちでアプリAとアプリBをつくり、実際に>>895のコードにScreenTo・・・を
追加してちゃんと動くことを確認してるんだっての。
916895:2008/07/04(金) 10:21:29
うわぁ〜めっちゃもうしわけないっす。
ご指摘どおりやったらできました。。。

勉強になりました。ありがとうございます。。。。。。。。。
917895:2008/07/04(金) 10:57:33
>>915
最初にScreenToClientを指摘受けた時に
WindowFromPointの後、SetCursorPosの前に追加して動作しなかったのは
マウスカーソルの位置が問題ですか?

マウスカーソルの位置以外は同じ動作すると思ったのですが。。。
918デフォルトの名無しさん:2008/07/04(金) 11:28:20
わからん、SetCursorPosそのものを無くしても動作するけどな。
919デフォルトの名無しさん:2008/07/04(金) 12:27:55
Windows+Rで表示される「ファイル名を指定して実行」はどのようなAPIを使って指定されたファイル名を実行しているのですか?
920デフォルトの名無しさん:2008/07/04(金) 12:33:59
ShellExecuteじゃね?
921デフォルトの名無しさん:2008/07/04(金) 13:46:00
ShowWindow(SW_HIDE)を
SendMessageを使って書くにはどうすればいいでしょう。
922デフォルトの名無しさん:2008/07/04(金) 13:50:29
ShowWindow(hWnd, SW_HIDE)だべ?
SendMessageじゃ無理だと思うけど、
メッセージにしたい理由はなによ。
923デフォルトの名無しさん:2008/07/04(金) 13:52:33
SendMessage(hwnd, WM_CLOSE, 0, 0);
924デフォルトの名無しさん:2008/07/04(金) 14:07:14
OutputDebugString関数で出力ウィンドウに文字列を出力できますが、
このウィンドウをクリアするAPIはあるでしょうか?
Visual C++ 2008 Express Editionを使っています。
925921:2008/07/04(金) 14:29:46
ありがとうございます。

>>922
無理ですかね。
それっぽい、SendMessage(hWnd, WM_SHOWWINDOW, SW_HIDE, 0)ではダメでした。
子ウィンドウを非表示にした瞬間に親ウィンドウに
再描画メッセージが来て欲しく質問しました。

>>923
それで行けますかね。実験してみます。
926デフォルトの名無しさん:2008/07/04(金) 14:33:16
>>925
再描画が欲しければInvalidateRect
急ぎならその直後にUpdateWindow
927921:2008/07/04(金) 14:51:22
>>926
UpdateWindowでできました。
InvalidateRectは使わなくても表示されました。
SW_HIDEでPostされた無効リージョンを、
UpdateWindowにより前倒しでSendの形で行われる感じなんですかね。

お答えくださったみなさま、ありがとうございました。
928デフォルトの名無しさん:2008/07/04(金) 16:34:23
>>920
どうもありがとうございます。
第3引数に"notepad hoge.txt"を渡したときになにもおきないのですが態々分割してやらなきゃいけないのでしょうか?
http://homepage1.nifty.com/bee/diary/2004b.htmlにはパラメータはひとまとめで指定できると書いてあったのですが
929デフォルトの名無しさん:2008/07/04(金) 16:39:09
>>928
カレントディレクトリとか大丈夫かね
930デフォルトの名無しさん:2008/07/04(金) 16:39:44
c:\に置いて
notepad c:\hoge.txt
とかやってみては
931デフォルトの名無しさん:2008/07/04(金) 16:51:55
>>924
Standard以降ならOutputDebugString(_T("$COMMAND(clear)"))で出来るからお金出して買おうね
932デフォルトの名無しさん:2008/07/04(金) 16:55:51
SelectObjectって、使った後は、
以前のオブジェクトに戻せってあるけど、
CreateCompatibleDCで作った、
そのウィンドウ専用のメモリDCでも戻さないといけないの?
933デフォルトの名無しさん:2008/07/04(金) 17:08:38
>>932
つべこべ考えないで「戻せ」と書かれていればそれに従って戻しておけばいいんだよ
余計な詮索をしてたまたま規定外の動作が通ったとしても将来のWindowsで動くとは限らないだろ
934デフォルトの名無しさん:2008/07/04(金) 18:34:16
いちいち戻すのが面倒なら最初にSaveDCしといて最後にRestoreDCしてから破棄すればOK
935デフォルトの名無しさん:2008/07/04(金) 19:24:08
知らないならレスしないでください
936デフォルトの名無しさん:2008/07/04(金) 21:44:21
int len = GetWindowTextLength(handle)

これでリッチエディット"RICHEDIT"から文字数取得しようと思ったんだけど
大きい文字列だと32767とか間違った値がでるんだけど
どうすればいい?
937デフォルトの名無しさん:2008/07/04(金) 22:00:17
>>932
DCに選択したままのオブジェクトはDeleteObjectできない。
だからDeleteObjectするために選択を外さないといけないんだけど、
そのためには「何か別のものを選択する」しか方法がない。
一番手っ取り早い方法が、元あったものを戻すことだってだけのこと。

元のオブジェクトじゃなくて適当なシステムオブジェクト戻しても構わないし
極端な話、DeleteObjectする気がなければそのまま放っといてもいい。
938デフォルトの名無しさん:2008/07/04(金) 22:17:33
> 元のオブジェクトじゃなくて適当なシステムオブジェクト戻しても構わないし
> 極端な話、DeleteObjectする気がなければそのまま放っといてもいい。

こういうお馬鹿な考えだとOSがバージョンアップした時に動かなくなるんだよな。
939デフォルトの名無しさん:2008/07/04(金) 22:23:03
てか、ちゃんとデリートするなりしないとリソースリークするんじゃね?
940デフォルトの名無しさん:2008/07/04(金) 23:36:07
当たり前
941デフォルトの名無しさん:2008/07/05(土) 00:24:39
極端な話、ウンコする気がなければトイレ作らなくてもいい。
942デフォルトの名無しさん:2008/07/05(土) 00:50:01
必ずしもDeleteする必要があるとは限らないだろう。
たとえばGetStockObjectしたものだったらDelete不要だから
DCに選択したままでも問題ない。

まあ、いるいらないにかかわらず「必ず元に戻す」と
作法として徹底するのはありだし、俺もそうしてるけどさ。
何でそうするのかって原理を知っといて損はないよ。
943デフォルトの名無しさん:2008/07/05(土) 04:23:06
> DCに選択したままのオブジェクトはDeleteObjectできない。
いつの時代の話だ
944デフォルトの名無しさん:2008/07/05(土) 04:44:03
1万年後
945デフォルトの名無しさん:2008/07/05(土) 12:19:28
一万年と二千年後も
946デフォルトの名無しさん:2008/07/05(土) 12:21:21
え?出来ないんじゃないの?
俺、いつも、ちゃんとオブジェクト戻してからデリってるけど。
947デフォルトの名無しさん:2008/07/05(土) 12:54:30
Windowsをログオフできなくする裏技ない?
948デフォルトの名無しさん:2008/07/05(土) 12:55:02
>>947
電源OFF
949デフォルトの名無しさん:2008/07/05(土) 12:58:04
そんな穴、天下のMS殿の製品には存在しないのですよ
950デフォルトの名無しさん:2008/07/05(土) 13:04:01
>>949
ログオンは自動にできるけどな。
951デフォルトの名無しさん:2008/07/05(土) 17:36:44
>>947
ポリシーとかレジストリでログオフメニューを消せたような気がするけど、自信ない。
クエリエンドセッションで断ったらどうなるんだっけ?
952デフォルトの名無しさん:2008/07/05(土) 19:50:35
ウィンドウメッセージ (WM_xxx) をカタカナで書く人って頭悪そうに見えちゃうよね。
953デフォルトの名無しさん:2008/07/05(土) 20:20:13
ウインドウメッセージ_クリエイトが来たところで、なんて見たこと無いが……
954デフォルトの名無しさん:2008/07/05(土) 20:24:22
WM_QUERYENDSESSION
955デフォルトの名無しさん:2008/07/05(土) 21:09:58
全角アルファベットよりましな気がするのはなぜだろう
956デフォルトの名無しさん:2008/07/05(土) 21:20:52
WM_QUITとかWM_CREATEとか?
957デフォルトの名無しさん:2008/07/05(土) 21:38:40
Unicodeに設定してコマンドライン引数で文字列を与えて表示させると、
■■みたいなのがでて、表示がおかしくなります。
マルチバイト文字だとうまくいくのですが。
何がおかしいのでしょうorz

ソースはこんなの。
wsprintf(GlobalLock(hMem), TEXT("コマンドライン引数=%s"), lpCmdLine);
958デフォルトの名無しさん:2008/07/05(土) 21:42:14
もしかしなくてもコマンドライン引数がLPSTRだったりしてるかな?
959デフォルトの名無しさん:2008/07/05(土) 21:47:30
>>958
その通りです……何か変更できたりするんですか?
960デフォルトの名無しさん:2008/07/05(土) 21:56:14
WinMainのウニコード版ってあったっけ?
961デフォルトの名無しさん:2008/07/05(土) 22:05:25
wWinMainかな。
962デフォルトの名無しさん:2008/07/05(土) 22:10:01
>>960
wWinMain
963901:2008/07/05(土) 23:32:55
>>903
ありがとうございます!なんとなく分かりました。
964デフォルトの名無しさん:2008/07/06(日) 00:09:38
>>961-962
ありがとうございました。
解決しました。
965デフォルトの名無しさん:2008/07/06(日) 09:05:48
草生やすなー
966デフォルトの名無しさん:2008/07/06(日) 09:23:44
草生 やす って誰?
967デフォルトの名無しさん:2008/07/06(日) 09:28:55
草生 やすな だよ。
968デフォルトの名無しさん:2008/07/06(日) 12:02:11
私は今C++を勉強中で、WIN32を使ったアプリをC++のクラスなどを使った形式でコーディングしたいと考えています。
そこでgoogle検索してみたところ、C言語形式のコーディング(関数形式?)の解説サイトばかりでした。

どなたかC++のクラス機能を上手く使ったWINDOWSプログラミングを公開しているサイト、もしくはサンプルなどをご紹介頂けないでしょうか。
969デフォルトの名無しさん:2008/07/06(日) 12:03:25
>>968
C#おすすめ
970デフォルトの名無しさん:2008/07/06(日) 12:17:54
たいてのサンプルはCで解説してあるから
それが使えないようだと先やって行けない。
最初から別の道へ進むことをお勧めします。
971デフォルトの名無しさん:2008/07/06(日) 12:33:55
Win32はCから呼ばれることを前提に作られてるからねー
972デフォルトの名無しさん:2008/07/06(日) 12:38:41
WTL使えばC++で組んだ気になれる。
973デフォルトの名無しさん:2008/07/06(日) 13:00:10
eGUI++という名前通りエグイ物もあるぞ
974デフォルトの名無しさん:2008/07/06(日) 13:06:38
>>966
いったい誰だよwwwww w
975デフォルトの名無しさん:2008/07/06(日) 13:08:32
>>968
Win32APIをC++でラップすることから始めてみることを勧める。
976デフォルトの名無しさん:2008/07/06(日) 13:25:23
「メッセージハンドリングの実装で躓く」に1セント
977デフォルトの名無しさん:2008/07/06(日) 13:54:50
MFCがあるだろうが
978デフォルトの名無しさん:2008/07/06(日) 14:01:58
>>968
今からC++/Win32を勉強するなんて馬鹿
時間を無駄にするなよ
979デフォルトの名無しさん:2008/07/06(日) 14:07:50
じゃあなにすればいいのさ
980デフォルトの名無しさん:2008/07/06(日) 14:08:42
Dでもやっとけ
981デフォルトの名無しさん:2008/07/06(日) 15:23:33
C++/Win32もやっといた方がいいでしょ
982デフォルトの名無しさん:2008/07/06(日) 15:30:08
この流れ嫌いじゃないw

ところでちょっと聞きたいことがあるんだが、
設定ファイルとかの定義ファイルを扱うとき
レジストリ弄りたく無くて、GetPrivateProfile*使ってたんだけど
処理速度が少し低速気味でもう少し処理速度を早くしたいと
思っているんだが。。。
※但し、Reg*系APIを使わない前提

こういう時って皆どうやってる?
※例えば、独自のバイナリ構成して
それを設定ファイルとして触ってるとか。
983デフォルトの名無しさん:2008/07/06(日) 15:39:38
内容が数値とかBOOLなんかメインなら構造体作ってベタ書き。
文字列主体ならsqliteとか適当に。

場合によってはスクリプト言語組み込んで設定スクリプトで吐き出す
984982:2008/07/06(日) 15:45:07
>>983
数値系は構造体で一気に読み出せばいいとは考えてたんだが、
文字列はなるほど。スクリプトを組み込むと言う手があったか

985デフォルトの名無しさん:2008/07/06(日) 16:03:03
こうして統一性の無い設定ファイルが生まれるのであった。
986982:2008/07/06(日) 16:05:06
ちょwwwwwwwwwwwwwww
987デフォルトの名無しさん:2008/07/06(日) 16:06:40
いやほんと。設定ファイルみたいなものにOS標準のサービス/APIを使わないのはどうかと思うよ。
988デフォルトの名無しさん:2008/07/06(日) 16:13:00
OS標準ならレジストリ一択だろ。
INI弄る関数は互換性のために残ってるだけだし。
989982:2008/07/06(日) 16:17:36
>>987,988
なるほどそうか。
レジストリは一部のユーザが嫌がりそうだから
極力使わないようにって感じだったんだが。。。


ともかく設定ファイルアクセスによるオーバヘッドは
無視できるレベルだから独自で云々とかやめる事にして
現状のままでいくことにするよ。
教えてくれてありがとう
990デフォルトの名無しさん:2008/07/06(日) 16:26:30
今時レジストリを嫌がる奴なんてWin16時代のオッサンだろ
991デフォルトの名無しさん:2008/07/06(日) 16:33:03
端末ごとに関連付けされているエディタを
識別して開くにはどうすればいいんでしょうか?

【 例 】
*.txtが秀丸に関連付けされていた場合
秀丸エディタでオープンする
逆にnotepadに関連付けされている場合・・・略

お願いします
992デフォルトの名無しさん:2008/07/06(日) 16:38:32
クソバレーの所為でコードギアスが遅れそうじゃねーか!!!!!!!!
993デフォルトの名無しさん:2008/07/06(日) 16:38:44
ShellExecute
994デフォルトの名無しさん:2008/07/06(日) 16:43:34
設定とかXMLでいいじゃん
995デフォルトの名無しさん:2008/07/06(日) 16:44:51
>>993
ありがとうございます
996デフォルトの名無しさん:2008/07/06(日) 16:54:42
日本バレーってほんとホームグラウンドじゃないと
勝てないんだな 7連敗とかwwwwwwwwwwwwww
997デフォルトの名無しさん:2008/07/06(日) 16:58:09
俺はレジストリ弄りたくないな。なんか間違えてたら怖い。
998デフォルトの名無しさん:2008/07/06(日) 17:02:59
ギアスおもしれええええええええええええええええ
おまいらもみようぜwwwwwwwwwwwwww
999デフォルトの名無しさん:2008/07/06(日) 17:04:46
俺んちにはテレビなんていう南朝鮮の侵略兵器は置いてねーんだよ!
1000デフォルトの名無しさん:2008/07/06(日) 17:08:57
ゴミソフトにレジストリ汚されたくないというのがあるからな
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。