Win32API質問箱 Build ..
357:デフォルトの名無しさん
09/03/11 20:48:00
>>356 レスサンクス。
もっと、初期の段階だったらそれも考えれるのですが、、、ここの部分組んだらプログラム完成するんです、、、。
DrawTextの第4引数のRECT構造体の値があるんですが、
これって、マイナスの値入れるのは危険ですか?
RECT rc;
GetClientRect( hWnd, &rc );
rc.top -= 100;
358:デフォルトの名無しさん
09/03/11 20:48:54
GDI+の用途って画像ファイルの入出力とアンチエイリアスつきのベクタ描画ぐらいじゃね
359:デフォルトの名無しさん
09/03/11 21:01:11
>>357
問題はない。
360:357
09/03/11 21:04:13
>>359 レスありがとん。
それを聞いて安心しました。
あとは、テキストのたての長さを割り出す作業だけでいけそうです。
ありがとうございました。
361:デフォルトの名無しさん
09/03/11 21:48:35
メモリDCに最初から全部描いておいて、スクロールの都度、必要な部分だけBitBltする手もあるぞ
362:デフォルトの名無しさん
09/03/11 21:58:41
早く数学を教えてください。
待て待て
363:デフォルトの名無しさん
09/03/11 22:49:25
>>354それもそうですね。
>>358GDIだけだと結構やりたいこと出来ないんですよ・・・
364:デフォルトの名無しさん
09/03/11 23:24:54
CloseHandleの戻り値って確認してる?
正しいハンドルを渡してもエラーになる場合ってどんなとき?
365:デフォルトの名無しさん
09/03/11 23:27:49
::GetLastError()
366:デフォルトの名無しさん
09/03/11 23:38:41
>>351
アホ乙w
367:デフォルトの名無しさん
09/03/12 00:15:36
>>364
通信系だと、通信不良とか?
368:デフォルトの名無しさん
09/03/12 00:49:05
プロパティシートで
psp.lParam=(LPARAM)Data; とlParamに構造体 DATAを設定しているのですが、
受取先の、Windowでは死んでいます。うまく受け渡しが
できません。
psp.pszTemplate = "IDD_D";
psp.pfnDlgProc = (DLGPROC)Function0;
psp.lParam=(LPARAM)Data;
hpsp[0] = CreatePropertySheetPage(&psp);
memset(&psh, 0, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_NOAPPLYNOW;
psh.hInstance = hInst;
psh.hwndParent = hDlg;
psh.nPages = 1;
psh.phpage = hpsp;
psh.pszCaption = "設定";
(HWND)PropertySheet(&psh);
うまく受け渡すにはどうしたらいいでしょうか
369:デフォルトの名無しさん
09/03/12 01:00:26
Dataの型は DATA か DATA* か? 前者なら間違い
370:デフォルトの名無しさん
09/03/12 01:01:18
肝心の受け取り部分が書いてないが
((PROPSHEETPAGE*)lParam)->lParamにしてるか?
371:デフォルトの名無しさん
09/03/12 01:57:57
>>364
ディクス書き込みで、フラッシュ時に IO エラーが発生するとか、
ディスクフルになるとか。
372:デフォルトの名無しさん
09/03/12 08:34:59
>>371
ファイル書き込みは遅延書き込みありでキャッシュされているから、
CloseHandle()の戻り値では、アプリケーションからディスクI/O時の
エラーは検出されないと思う。イベントログに上がるだけでは?
キャッシュを書き戻す処理に関係なく、キャッシュとディスク上の配置は
マップ管理されていると思うので、ディスクフルはWriteFile()の戻り値で
エラーが返されるはず。
当然だが、オープンされていない間違ったハンドルを渡せばエラーが返る。
373:デフォルトの名無しさん
09/03/12 12:26:27
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / // >>366 そんなこと言うなよ。仲間だろ?wwwwwww
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / / バ
| | l||l 从人 l||l l||l 从人 l||l バ ン
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
374:デフォルトの名無しさん
09/03/12 18:11:18
ボタンの描画についての質問です。
グループボックスや、ラジオボタンが描画されるとき、文字列描画部分の背景色を透過することはできないでしょうか。
MSDNを読むとWM_CTLCOLORBTNはオーナードローのボタンでないと、意味が無いということで (実際無理でした)
サブクラス化をして、WM_ERASEBKGNDを捕まえて何も処理せずにreturnしたり、
GetClassInfoEx → styleメンバに CS_OWNDC を OR演算 → 新しいクラス登録、その後 WM_CREATE でSetBkMode(hdc,TRANSPARENT)を試してみたりしましたが、どちらもできませんでした。
ボタンの描画自体はデフォルトの処理を任せたいのですが、何か方法はないでしょうか。
375:デフォルトの名無しさん
09/03/12 18:16:18
WS_EX_TRANSPARENTを指定してWM_CTLCOLOR〜でNULLブラシを返せば?
376:デフォルトの名無しさん
09/03/12 18:30:15
>>375
レス有難う御座います。
試してみましたが、変化が現れませんでした。
377:デフォルトの名無しさん
09/03/12 18:32:15
WM_CTLCOLORBTN or WM_CTLCLORSTATIC にて
SetBakMode( hDC, TRANSPARENT);
return (HBRUSH)GetStockObject( NULL_BRUSH);
378:デフォルトの名無しさん
09/03/12 18:50:07
>>377
コンパイルエラーだろバカ
379:デフォルトの名無しさん
09/03/12 18:56:37
STATICコントロールは WM_...STATIC で透過させることが出来ますが、
BUTTONコントロールはどうもうまくいかないみたいです・・・。
素直に諦めることにします。
380:デフォルトの名無しさん
09/03/12 19:03:33
普通に可能なんだが・・・
ああ馬鹿なのね
381:デフォルトの名無しさん
09/03/12 19:21:27
面倒だから煽らなくていいです
382:デフォルトの名無しさん
09/03/12 19:57:00
>>380はわかってない馬鹿とみた
383:デフォルトの名無しさん
09/03/12 20:03:24
>>382
ん?悔しかったの?www
384:デフォルトの名無しさん
09/03/12 20:07:28
ラジオボタンやグループボックスの背景なら>>375>>377が書いてる方法で透過するだろ。
前にそういうコード書いたことあるし。
385:デフォルトの名無しさん
09/03/12 20:46:16
>>384
新しくプロジェクトを始めて、ダイアログベースではないウィンドウ上で試してみたら、成功しました。
リソースから作ったダイアログ上のタブコントロールの上にこれらのBUTTONコントロールを配置した時に、見栄えが悪かったため
最初の質問をさせていただきましたが、グループボックスをリソースからではなく、
WM_INITDIALOG内にて、親ウィンドウをタブコントロールとして生成したところ、やりたかったことを実現することが出来ました。
レスしてくれた方々、有難う御座いました。
386:デフォルトの名無しさん
09/03/12 20:58:08
>最初の質問をさせていただきましたが、グループボックスをリソースからではなく、
まさか コントロールIDが IDC_STATIC のままだったとかいうオチじゃないだろうな。
387:デフォルトの名無しさん
09/03/12 21:01:56
いや、IDは数字を直指定しているのでそれはないです。
388:デフォルトの名無しさん
09/03/12 21:38:45
>>382が分かってない馬鹿でした
389:デフォルトの名無しさん
09/03/12 22:44:12
ブラウザでページを開いて、
今どの入力項目にカーソルがあたっているかを調べる方法ってありますか?
390:デフォルトの名無しさん
09/03/13 07:10:04
>>389
ブラウザまで自作すれば出来るんじゃね
391:デフォルトの名無しさん
09/03/13 07:13:03
>>390
俺もわかんねけどDOM構造調べてカーソルチェックするしかないんじゃね?
392:デフォルトの名無しさん
09/03/13 07:17:26
IEで、現在選択されている文字列をクリップボードにコピーさせる操作を、
別プロセスから行うのはAPIで可能ですか?
393:デフォルトの名無しさん
09/03/13 07:23:50
>>392
SendMessage()でいいんじゃね?
激しくメンドクサイが・・・
394:デフォルトの名無しさん
09/03/13 08:18:47
>>391
なるほど
ところでそのカーソルのチェックってどうやったらできますか?
395:デフォルトの名無しさん
09/03/13 08:22:31
>>394
気持は分かるがそこまでだ。DOMはWin32じゃない。
その辺のHTMLか言語スレでやってくれ。
396:デフォルトの名無しさん
09/03/13 10:47:02
Windowを列挙して座標から該当するWindow(コントロール)を探す。
その名前とHTMLを照合する・・ってぐらいしか思いつかないな。
397:デフォルトの名無しさん
09/03/13 11:03:27
アドウェアの開発を手伝ってやることはないと思うんだ
398:デフォルトの名無しさん
09/03/13 11:09:24
どちらかというとカード番号とかIDを奪うスパイウェアっぽい
399:デフォルトの名無しさん
09/03/13 11:28:01
フォームに自動入力するのは作ったことある
フォームに入ってるデータも隠しを含めて全部読めたけど
カーソル位置なんか考えないな
400:デフォルトの名無しさん
09/03/13 11:33:52
>>396
バカ、IEはウィンドウレスだからコントロールは無いよ
401:デフォルトの名無しさん
09/03/13 11:35:45
>>400
402:デフォルトの名無しさん
09/03/13 11:45:50
このスレウザイのが張り付いてるな
自分の仕事と思ってるのか知らんが一番迷惑
面白いレスしようと思ってワクワクしてこのスレ開いてんのかな?
一番寒いのに
403:デフォルトの名無しさん
09/03/13 12:17:13
>>402
君が一番寒いよ
404:デフォルトの名無しさん
09/03/13 12:18:14
>>403
そして君が二番目
405:デフォルトの名無しさん
09/03/13 12:30:51
>>402
知らないならレスしないで下さい。寒いだけです。
406:デフォルトの名無しさん
09/03/13 12:37:34
さぶ
407:デフォルトの名無しさん
09/03/13 13:28:35
>>402
知識の還元してるんでしょ?喜ぶことで煽ることではないと思うが
ただし、的を射る場合に限るw
408:デフォルトの名無しさん
09/03/13 13:37:59
>>407
寒い自己レス乙
409:デフォルトの名無しさん
09/03/13 13:41:40
おいおい、せめて引きこもりピザは2chで役に立てwww
410:デフォルトの名無しさん
09/03/13 13:45:26
>>409
自己紹介乙
411:デフォルトの名無しさん
09/03/13 13:49:21
>>410
自作自演乙
412:デフォルトの名無しさん
09/03/13 13:53:53
>>411
寒い自己レス乙
413:デフォルトの名無しさん
09/03/13 14:28:32
あるプロセスが走っているか調べるAPIはありますでしょうか?
具体的にはタスクマネージャーが動いているか知りたいです。
414:デフォルトの名無しさん
09/03/13 14:30:58
>>413
スパイウェアですか?
415:デフォルトの名無しさん
09/03/13 14:31:27
>>413
EnumWindowsでタスクマネージャWindowを探すのどうよ?
416:413
09/03/13 14:32:21
ちがいます。
417:413
09/03/13 14:35:09
正解です。
418:413
09/03/13 14:35:48
>>415
ありがとうございます。試してみます。
419:デフォルトの名無しさん
09/03/13 14:38:44
ちんちんが大きくなるのですがどうしたらいいですか?
420:デフォルトの名無しさん
09/03/13 14:43:41
>>389=>>413?
タスクマネージャからプロセス隠蔽してブラウザで入力した個人情報を盗むスパイウェアを作ってるんですね
次はrootkitの作り方を質問してくるのかな
421:デフォルトの名無しさん
09/03/13 15:00:12
何でこのスレは直ぐにスパイウェアだとか、そんな悪い方向に持ってくの?
422:デフォルトの名無しさん
09/03/13 15:04:06
あとはpsapiとかかね
423:デフォルトの名無しさん
09/03/13 15:04:44
悪い方向のソフトを作る目的で質問する馬鹿がいるから。
424:デフォルトの名無しさん
09/03/13 15:05:56
psapiってプラットだったっけ?
昔めんどくさくてフリーのEXE拾ってきた覚えたあったなぁ
425:デフォルトの名無しさん
09/03/13 15:09:16
>>413
結局ナニ作るの?そろそろ教えてくれないよこれ。
426:デフォルトの名無しさん
09/03/13 15:11:35
日本語でおk
427:デフォルトの名無しさん
09/03/13 15:13:19
タスクマネージャーを監視する目覚ましと時計(MP3ネットラジオ付)です。
428:デフォルトの名無しさん
09/03/13 15:16:32
まだ目覚まし粘着君いたんだw
すげーしつこいw
429:デフォルトの名無しさん
09/03/13 15:16:45
やばいwww天才発見www
その発想は無かったわwwwwwwwwwwwwwwwwwwwwwww
出来ればなぜにタスクマネージャー見るのか教えて。
煽りではなく、後学のために。どんな用途に使えるの?
430:デフォルトの名無しさん
09/03/13 15:21:49
>>429
お前には関係ないですよ。
431:デフォルトの名無しさん
09/03/13 15:30:31
/ ̄ ̄\
/ _ノ \
| ( ●)(●)
. | (__人__)____
| ` ⌒/ ─' 'ー\
. | /( ○) (○)\
. ヽ / ⌒(n_人__)⌒ \ >>429
ヽ |、 ( ヨ |
/ `ー─− 厂 /
| 、 _ __,,/ \
432:デフォルトの名無しさん
09/03/13 15:31:51
>>429
433:デフォルトの名無しさん
09/03/13 16:05:03
>>429あげ
434:デフォルトの名無しさん
09/03/13 16:07:08
>>429の母です。
435:デフォルトの名無しさん
09/03/13 16:13:00
>>429の娘です。
436:デフォルトの名無しさん
09/03/13 17:32:18
>>429のコーン入りうんこです。
437:デフォルトの名無しさん
09/03/13 18:27:27
>>429
タスクマネージャ監視の使い道を考えてみた。
裏でゴリゴリ悪いことしてるプログラムが、タスクマネージャでCPU使用率を見られて
マークされないように、タスクマネージャが起動している間は大人しくする。
438:デフォルトの名無しさん
09/03/13 19:09:47
>>437
そんな面倒な事しなくても適宜Sleep(n)でも入れて休ませとけばいいだろ
タスクマネージャを騙すっていえば定期的にSetProcessWorkingSetSizeを呼んでメモリ使用量を少なく見せるとか有名だな
439:デフォルトの名無しさん
09/03/13 19:18:45
午後キチ、今日は楽しかったろ
440:デフォルトの名無しさん
09/03/13 19:19:04
>>419
結局ナニ作るの?そろそろ教えてくれないよこれ。
441:デフォルトの名無しさん
09/03/13 20:12:34
チャットなら外でやれ
442:デフォルトの名無しさん
09/03/13 20:32:17
カタカタ
|| ̄ Λ_Λ
||_(Д`; ) 「なに?このスレ・・・」
\⊂´ )
( ┳'
443:デフォルトの名無しさん
09/03/13 21:13:07
>>442
そういうのイラネ
444:デフォルトの名無しさん
09/03/13 21:21:54
>>443
そういうのイラネ
445:デフォルトの名無しさん
09/03/13 23:48:48
soine
446:デフォルトの名無しさん
09/03/14 09:16:01
Win32APIで、MessageBoxみたいに一発呼び出しで
1行テキスト入力だけして入力した文字列を返すようなダイアログを出すAPIってないもんでしょうか?
447:デフォルトの名無しさん
09/03/14 09:20:20
ないもんです
448:デフォルトの名無しさん
09/03/14 09:35:05
EntryDialog
449:デフォルトの名無しさん
09/03/14 09:46:56
URLリンク(www.gamedev.net)
#include <windows.h>
#include <string>
#ifdef UNICODE
typedef std::wstring InputBoxStringType;
typedef LPWSTR InputBoxCharPointerType;
typedef wchar_t InputBoxCharType;
#define InputBoxString(x) L##x
#else
typedef std::string InputBoxStringType;
typedef LPSTR InputBoxCharPointerType;
typedef char InputBoxCharType;
#define InputBoxString(x) x
#endif
450:デフォルトの名無しさん
09/03/14 09:48:50
LRESULT CALLBACK InputBoxWndProc(HWND WndHandle, UINT Message, WPARAM wParam, LPARAM lParam){
static InputBoxStringType *Results = 0;
static HWND InputLabelHandle = 0;
static HWND InputHandle = 0;
switch(Message){
case WM_NCCREATE:{Results = (InputBoxStringType*)((CREATESTRUCT*)lParam)->lpCreateParams;break;}
case WM_CLOSE:case WM_DESTROY:{PostQuitMessage(0);break;}
case WM_COMMAND:{
int NotifyCode = HIWORD(wParam);
int ControlId = LOWORD(wParam);
HWND ControlHandle = (HWND)lParam;
switch(ControlId){
case 1001:{InputHandle = ControlHandle;break;}
case 1002:{if(InputHandle == 0 || !Results){PostQuitMessage(0);break;}
InputBoxCharPointerType Buffer = new InputBoxCharType[256];
GetWindowText(InputHandle, Buffer, 256);
*Results = Buffer;PostQuitMessage(0);break;}
case 1003:{if(InputHandle == 0 || !Results){PostQuitMessage(0);break;}
*Results = InputBoxString("");PostQuitMessage(0);break;}
}break;}
}
return DefWindowProc(WndHandle, Message, wParam, lParam);
}
451:デフォルトの名無しさん
09/03/14 10:17:38
static InputBoxStringType ShowInputBox(HWND OwnerWindowHandle, const InputBoxStringType &InputLabel, const InputBoxStringType &InputText, const InputBoxStringType &Title){
WNDCLASS WndClass;
HWND DialogHandle = 0;
HWND InputLabelHandle = 0;
HWND InputHandle = 0;
HWND OkButtonHandle = 0, CancelButtonHandle = 0;
InputBoxStringType Result = InputBoxString("");
ZeroMemory(&WndClass, sizeof(WNDCLASS));
WndClass.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
WndClass.hIcon = LoadIcon(0, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(0, IDC_ARROW);
WndClass.hInstance = GetModuleHandle(0);
WndClass.lpszClassName = InputBoxString("InputBox");
WndClass.lpfnWndProc = InputBoxWndProc;
RegisterClass(&WndClass);
int X = 0, Y = 0;
int Width = 0, Height = 0;
RECT TempRect;
GetWindowRect(GetDesktopWindow(), &TempRect);
Width = (int)((float)(TempRect.right - TempRect.left) * 0.25f);
Height = 150;
X = ((TempRect.right - TempRect.left) / 2) - (Width / 2);
Y = ((TempRect.bottom - TempRect.top) / 2) - (Height / 2);
452:デフォルトの名無しさん
09/03/14 10:18:25
DialogHandle = CreateWindowEx(0, InputBoxString("InputBox"), Title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, X, Y, Width, Height, OwnerWindowHandle, 0, GetModuleHandle(0), (LPVOID)&Result);
int LabelX = 5, LabelY = 5;
int LabelWidth = Width - 10, LabelHeight = 24;
InputLabelHandle = CreateWindowEx(0, InputBoxString("STATIC"), InputLabel.c_str(), WS_CHILD | WS_VISIBLE, LabelX, LabelY, LabelWidth, LabelHeight, DialogHandle, 0, GetModuleHandle(0), 0);
int TBoxX = 5, TBoxY = 29;
int TBoxWidth = Width - 20, TBoxHeight = 24;
InputHandle = CreateWindowEx(0, InputBoxString("EDIT"), InputText.c_str(), WS_BORDER | WS_CHILD | WS_VISIBLE, TBoxX, TBoxY, TBoxWidth, TBoxHeight, DialogHandle, (HMENU)1001, GetModuleHandle(0), 0);
int OkBtnX = (Width / 2) - 75, OkBtnY = Height - 60;
int OkBtnWidth = 75, OkBtnHeight = 24;
OkButtonHandle = CreateWindowEx(0, InputBoxString("BUTTON"), InputBoxString("Ok"), WS_CHILD | WS_VISIBLE, OkBtnX, OkBtnY, OkBtnWidth, OkBtnHeight, DialogHandle, (HMENU)1002, GetModuleHandle(0), 0);
int CancelBtnX = (Width / 2) + 25, CancelBtnY = Height - 60;
int CancelBtnWidth = 75, CancelBtnHeight = 24;
CancelButtonHandle = CreateWindowEx(0, InputBoxString("BUTTON"), InputBoxString("Cancel"), WS_CHILD | WS_VISIBLE, CancelBtnX, CancelBtnY, CancelBtnWidth, CancelBtnHeight, DialogHandle, (HMENU)1003, GetModuleHandle(0), 0);
MSG Message;
ZeroMemory(&Message, sizeof(MSG));
while(Message.message != WM_QUIT){
if(PeekMessage(&Message, 0, 0, 0, PM_REMOVE)){
TranslateMessage(&Message);
DispatchMessage(&Message);}}
return Result;
}
#undef InputBoxString
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
InputBoxStringType Result = ShowInputBox(0, L"Please enter your name:", L"Unknown", L"Name Entry");
MessageBox(0, Result.c_str(), L"Your name is:", MB_OK);
return 0;
}
453:デフォルトの名無しさん
09/03/14 10:33:42
>>446
さすがにないかー
>>449
ありがとう。これぐらいのコードでいけるんですね。
C++じゃないけど、参考にさせていただきます
454:デフォルトの名無しさん
09/03/14 12:03:04
こんな糞コード見たのは久しぶりだ
455:デフォルトの名無しさん
09/03/14 12:11:04
つーか、スレに長いコード載せるな
456:デフォルトの名無しさん
09/03/14 12:12:55
#ifdef UNICODE
で分岐さすんなら、
最初っからTCHAR使えばいいんじゃね?w
457:デフォルトの名無しさん
09/03/14 12:15:00
猫わかレベルを超えてるなw
458:デフォルトの名無しさん
09/03/14 12:26:05
目が痛い
459:デフォルトの名無しさん
09/03/14 12:29:45
>>454-458
文句言うならお前が書けよ
460:デフォルトの名無しさん
09/03/14 12:36:09
> Note, I am not the best Win32 programmer, so there may be a better way to handle this. It does work though.
と本人自ら言ってるコードを貼るな馬鹿>>449
461:デフォルトの名無しさん
09/03/14 14:50:17
画面のプロパティのデザインで指定したフォントを取得する API ってありますか?
462:デフォルトの名無しさん
09/03/14 16:16:49
>>459
作ってみたよ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
463:446
09/03/14 16:33:58
盛り上がっているところなんなのですが、
WSHでInputBoxという関数があり、これを使うと一発でよべました。
Win32APIで、と書いたのですが、Ruby だったのでwshでもよかったので・・・
前提条件書き忘れてスマソ
お騒がせいたしました・・・。
464:デフォルトの名無しさん
09/03/14 16:35:33
>>460
わろす
>I am not the best Win32 programmer
なんて言ってるけど
ただのプログラマとしても相当アレだw
465:デフォルトの名無しさん
09/03/14 16:40:26
よし。ちょっとそこに正座をだな(ry
まあいいけどねw
466:デフォルトの名無しさん
09/03/14 16:49:31
>>463
>WSHでInputBoxという関数があり、これを使うと一発でよべました。
がAPIだとあいやーーー><の世界へGoになるんだって実感したんじゃね
467:デフォルトの名無しさん
09/03/14 16:59:29
>>462
無駄に長すぎ。
昔InputBox互換関数を作った事あるがA/W両対応して (ダイアログプロシージャ内で切り替える) 50行程度で出来たが。
とりあえず、DialogBoxIndirectParamを使ってるのにわざわざCreateWindowExしまくるなら
予めリソースエディタで作っておいたダイアログリソースのバイナリを埋め込んで使えばいいかと。
フォントはMS Shell Dlgを設定しておけばいいし。
static const BYTE templ[] = { ... };
DialogBoxIndirectParam(hinst, (LPCDLGTEMPLATE)templ, ...);
468:デフォルトの名無しさん
09/03/14 17:04:22
つーか実質WM_COMMANDのIDOKでGetDlgItemTextするだけだろ
今時APIオンリーでプログラム作ってる人ならこの程度は直ぐに作れるよ
作ってみたとかいちいち自慢しなくておk
469:デフォルトの名無しさん
09/03/14 17:11:57
リソースなしで作ってるから長いだけであって。
コントロールサイズの調整が必要だからそれだけで終わりじゃないさ。
470:デフォルトの名無しさん
09/03/14 17:14:40
作れ→作った→作ってみたとかいちいち自慢しなくておk
おまえどんな鬼畜だよ
471:デフォルトの名無しさん
09/03/14 17:15:13
だからリソースバイナリを使えって話なんだろ
472:デフォルトの名無しさん
09/03/14 17:16:01
お前はもうちょっと可読性を考えたほうがいい
473:デフォルトの名無しさん
09/03/14 17:16:04
たしかになw 鬼畜すぐるw
474:デフォルトの名無しさん
09/03/14 17:17:50
MS UI Gothic決め打ちしてる糞コードで可読性とかw
475:デフォルトの名無しさん
09/03/14 17:19:19
ダイアログボックス用のフォントってどうやって取得するの?
476:デフォルトの名無しさん
09/03/14 17:19:36
98とかの環境だと、
"MS ゴシック"てしないとダメだよねw
477:デフォルトの名無しさん
09/03/14 17:19:53
違った。メッセージボックス用のフォントだ。
478:デフォルトの名無しさん
09/03/14 17:21:29
無いフォント指定しても勝手に別のフォントが使われるだけだから問題はないだろ・・・
479:デフォルトの名無しさん
09/03/14 17:21:32
>>470
だってさー、5分とかからないレベルのプログラムなのに4時間でコレだぜ?
480:デフォルトの名無しさん
09/03/14 17:22:07
>>479
じゃあお前作れよ
481:デフォルトの名無しさん
09/03/14 17:22:26
>>468
今時APIオンリーでプログラム作ってる人
ってよ趣味グラマじゃないのか?プログラマにそんなのいるのか?
482:デフォルトの名無しさん
09/03/14 17:22:32
>>479
じゃあお前が五分で作って見せろよ
483:デフォルトの名無しさん
09/03/14 17:23:03
今からカウントダウン
484:デフォルトの名無しさん
09/03/14 17:24:31
キタ━━(゚∀゚)━━!!
wktk
485:デフォルトの名無しさん
09/03/14 17:25:40
否定されて悔しかった>>462が「お前が作れ」と言い出したようですね
486:デフォルトの名無しさん
09/03/14 17:26:03
>>485
逃げたーーーーーー!!!!!!!!!!!wwwwwwwwwwwwww
487:デフォルトの名無しさん
09/03/14 17:26:57
>>484
>>486
失せろゴミ
488:デフォルトの名無しさん
09/03/14 17:26:57
作れないのなら最初から私には無理ですと言えよ
489:デフォルトの名無しさん
09/03/14 17:27:21
∧_∧
( ・∀・)ワクワク
( ∪ ∪
と__)__)
490:デフォルトの名無しさん
09/03/14 17:27:30
そろそろ5分だ
491:デフォルトの名無しさん
09/03/14 17:29:40
作ってみた。
BOOL InputBox(HWND hwnd,INPUTBOXPARAMS* param)
{
return(DialogBoxParam(hwnd,MAKEINTRESOURCE(IDD_INPUT),hwnd,InputBoxProc,(LPARAM)param)==IDOK);
}
492:デフォルトの名無しさん
09/03/14 17:32:11
もうだめだこのスレ
493:デフォルトの名無しさん
09/03/14 17:32:16
ポカーン
494:デフォルトの名無しさん
09/03/14 17:32:20
>>462
やっぱgoto使った方がすっきりかけるよな
なんで洗脳されてgoto嫌う奴いるんだろうな
場合によってはネスト深くなるだけなのに
495:デフォルトの名無しさん
09/03/14 17:34:07
>>491
出し惜しみしないで、全部さらせ
496:デフォルトの名無しさん
09/03/14 17:34:46
俺も作ってみた(VB用)
Public Function MyInputBox(prompt, title, default)
MyInputBox = InputBox(prompt, title, default)
End Function
'テスト
Debug.Print MyInputBox("input?","test","default")
497:デフォルトの名無しさん
09/03/14 17:36:34
>>496
作るなよ・・・
498:デフォルトの名無しさん
09/03/14 17:37:52
My(笑)
499:デフォルトの名無しさん
09/03/14 17:40:50
>>496
目覚ましいたのか
500:デフォルトの名無しさん
09/03/14 17:40:51
所詮は作れといわれてすぐに作り始めたと思い込むだけの馬鹿だったか・・・
501:デフォルトの名無しさん
09/03/14 17:41:17
ほれ。
BOOL InputBox(LPTSTR buf, int siz)
{
FILE*fp;
AllocConsole();
fp = fopen("CONIN$", "r");
if(fp){_fgetts(buf, siz, fp);fclose(fp);}
FreeConsole();
return!!fp;
}
502:デフォルトの名無しさん
09/03/14 17:59:03
で、汚いソースコード晒した>>462はどこ行った?
503:デフォルトの名無しさん
09/03/14 18:00:04
>>477
SystemParametersInfoでSPI_GETNONCLIENTMETRICS
一緒に渡すNONCLIENTMETRICSの中のlfMessageFont
504:デフォルトの名無しさん
09/03/14 18:03:32
>>503
ふむふむ。なるほど。d
505:デフォルトの名無しさん
09/03/14 18:04:04
>>502
お前がコードを晒さないから呆れてどっか行ったんだろう
506:デフォルトの名無しさん
09/03/14 18:06:00
>>505=>>462
なんだいるじゃんwww
507:デフォルトの名無しさん
09/03/14 18:08:53
www
508:デフォルトの名無しさん
09/03/14 18:10:20
>>502
お前がコードを晒すのを楽しみにして待ってるよ
509:デフォルトの名無しさん
09/03/14 18:12:46
>>508
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
510:デフォルトの名無しさん
09/03/14 18:14:06
>>509
死ねば
511:デフォルトの名無しさん
09/03/14 18:14:48
>>509
これ以上のコードは書けないという意思表示と解釈した
512:デフォルトの名無しさん
09/03/14 18:19:08
何故こんなに>>462がたたかれてるのかwwwwwww
お前ら愛しすぎだ
513:デフォルトの名無しさん
09/03/14 18:21:47
>>511
他人にコード晒せと指図するならまずは自分の書いたコードをまともな物にしてから言えという事だ
514:デフォルトの名無しさん
09/03/14 18:22:55
>>513
他人のコードを叩くならまずは自分の書いたコードを晒すべきだろw
馬鹿かお前は
515:デフォルトの名無しさん
09/03/14 18:23:28
自分で書けないから他人に書かせようとしてんのかwwwwwww
516:デフォルトの名無しさん
09/03/14 18:24:46
暇だなあおまいら
517:デフォルトの名無しさん
09/03/14 18:25:58
別に作らなくてもいいのにわざわざ作る
↓
コードが糞で荒れる
↓
お前も作れと逆ギレ
↓
俺以上のコード書ける奴はいないと自己陶酔 ←今ここ
518:デフォルトの名無しさん
09/03/14 18:26:09
飴と鞭は大事だ
519:デフォルトの名無しさん
09/03/14 18:29:01
>>517
>>470
1時間前のことくらい覚えとけよ
520:デフォルトの名無しさん
09/03/14 18:29:21
┗0=============0┛
\===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/
/三三三三三三三三三三三三三三三三三三三三\
0 │ |∞∞∞ |::|∞∞田田∞∞|::|∞∞∞ | ::| 0
[二] | ::| |::|┏━━┓|::| | ::l [二]
◎○@※◎○@※. |□|.│ |┌┬┐ |::|┃ Vista ┃|::| ┌┬┐| ::|. |□| ◎○@※◎○@※
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii| `)三(´| ::|├┼┤ |::|┃ ∧_∧ ┃|::| ├┼┤| ::|`)三(´il|iiii|iiii|iiii|iiii|iiii|iiii|iiii|
@※◎○@※◎○ | ::| | ::|└┴┘ |::|┃(´Д` ) ┃|::| └┴┘| ::| | ::| @※◎○@※◎○
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li┏━━━┓|::|┃(. つ┃|::|┏━━━┓ li|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l
◎○@iiii※◎○@ ┣┳┳┳┳┳┫|::|┗━━┛|::|┣┳┳┳┳┳┫ ◎○@iiii※◎○@
ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|l ○ ● ∫∬∫∬ ● ○ ii|iiii|iiii|iiii|iiii|iiii|iiii|iiii|li
○○ ●● iiiii iii ii iiii ●● ○○
[ ̄ ̄] [ ̄ ̄] ( ̄ ̄ ̄ ̄ ̄) [ ̄ ̄] [ ̄ ̄]
|_○_| .|_○_| |_____| |_○_| .|_○_|
∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧
(NT3.1)(NT3.5)(NT3.51)(,,XP ) (2003)(2008)(Warp4)(, )(, ;)
NTの徒花がめでたく散りますた。 すンげぇメシウマwww
521:デフォルトの名無しさん
09/03/14 18:31:06
自慢気に汚いコード晒せば叩かれるぐらい想像できるだろ
「素晴らしい!とても綺麗なコードですね!有り難く使わせて貰います!!」
なんてレスが付くとでも本気で思ってたのか?
522:デフォルトの名無しさん
09/03/14 19:17:44
そんなことのために上げたわけでもないのに
何を妄想を語ってるんだ?
523:デフォルトの名無しさん
09/03/14 19:20:09
汚いコードしか晒せないから
叩かれるのがいやなので晒しません
という意思表示と見た
524:デフォルトの名無しさん
09/03/14 19:23:31
>>522
API信者は妄想でのみしか語れない、そして、基地外である。覚えておくように
>>520 見事な基地外っプリ
525:デフォルトの名無しさん
09/03/14 19:23:49
きれいなコードというやつを見せて欲しいな
526:デフォルトの名無しさん
09/03/14 19:28:12
お前の入っているコタツから延びてるだろ
527:デフォルトの名無しさん
09/03/14 19:31:38
>>525
ここのスレ住民は妄想でいつも綺麗なAPIのみコードを書いている
それは自分の美学を追及した綺麗なコードだ
528:デフォルトの名無しさん
09/03/14 19:39:57
妄想かいw
529:446
09/03/14 19:41:43
マジごめんなさいヽ(`Д´)ノ ウワァァン!!
530:デフォルトの名無しさん
09/03/14 19:43:53
( ´∀`)σ)`Д´)ノ ウワァァン!!
531:デフォルトの名無しさん
09/03/14 19:44:23
そもそも>>462のコードって別に汚くはないよな?
フォントとボタンのキャプションが決めうちな点で問題はあるが
それは別に汚いと表現することでもないし
532:デフォルトの名無しさん
09/03/14 19:48:37
汚いというより間違ってる
533:デフォルトの名無しさん
09/03/14 19:52:46
> そもそも>>462のコードって別に汚くはないよな?
自画自賛乙
534:デフォルトの名無しさん
09/03/14 20:03:53
CancelにもBS_DEFPUSHBUTTONしてあるしな
535:デフォルトの名無しさん
09/03/14 20:04:30
>>533
お前のコードが見てみたい
536:デフォルトの名無しさん
09/03/14 20:05:19
>>533
自画自賛で何か問題でも?
537:デフォルトの名無しさん
09/03/14 20:06:25
>>536
自画自賛の開き直り乙
538:デフォルトの名無しさん
09/03/14 20:07:02
>>537
ありがとう
539:デフォルトの名無しさん
09/03/14 20:09:19
>>462
なんかスキル浅い人が色々やってみましたって感じ
てかフォントやコントロールのサイズ決め打ちするぐらいなら>>467の方法でいいと思うが
540:デフォルトの名無しさん
09/03/14 20:09:48
もう駄目かもしれんね
541:デフォルトの名無しさん
09/03/14 20:12:28
メッセージとエディットボックスのサイズは決めうちしてないけど
542:デフォルトの名無しさん
09/03/14 20:14:25
とりあえずみんなコードで語れ
543:デフォルトの名無しさん
09/03/14 20:15:43
つーか横幅は固定でいいだろ。しかも字幅の計算がなんかアレだし。
544:デフォルトの名無しさん
09/03/14 20:16:00
固定はまずいだろ・・・
545:デフォルトの名無しさん
09/03/14 20:16:58
GetTextExtentPoint以外に何かいい方法あるのん?
546:デフォルトの名無しさん
09/03/14 20:17:33
>>544
WSHやVBのInputBox使ったこと無いのか?
547:デフォルトの名無しさん
09/03/14 20:22:05
MessageBoxが伸びるからInputBoxも伸ばしただけだが
548:デフォルトの名無しさん
09/03/14 20:23:26
>>546
なんとも不便なんだな
549:デフォルトの名無しさん
09/03/14 20:27:34
ダイアログなのにGWLP_USERDATAとか使っちゃってるし
しかもLONG_PTRじゃなくてLONGにキャストしちゃってるし
SM_C?SCREENで画面サイズ計算しちゃってるし
猫プログラミングぐらいのレベルだな
550:デフォルトの名無しさん
09/03/14 20:32:35
画面サイズはメジャーを使ってモニターに押し当てないと測れないな。
551:デフォルトの名無しさん
09/03/14 20:37:45
MAX_WIDTHっておい、どう見てもMIN_WIDTHの間違いだろw
で、MessageBoxと違ってmaxは考慮しないのな
WUXGAとかで開発してるとnetbookで使った時えらい事になりそうだw
552:デフォルトの名無しさん
09/03/14 20:39:42
ダイアログは別のやつ使うんだった気がしてたけど調べるの忘れてたわ。 >GWLP_USERDATA
LONGになってんのは単純なミス。
画面サイズは何を使えば満足? マルチディスプレイはよく分からん。
どう見てもMIN_WIDTHの間違い。 >MAX_WIDTH
MessageBoxってmax考慮してたっけ? 画面外にまで突き抜けてた気がするけど。
553:デフォルトの名無しさん
09/03/14 20:41:20
WM_SETFONTした後のGetDCでフォントが選択されてる保証ってあるの?
554:デフォルトの名無しさん
09/03/14 20:45:22
何ていうか、見た人のスキルで評価の分かれるコードだw
「どこがダメなんだ?」と思った人は猫わかレベルの人だろう
555:デフォルトの名無しさん
09/03/14 20:46:52
勉強になるなあ
556:デフォルトの名無しさん
09/03/14 20:55:10
もろもろ考慮しても>>467は50行で作れるし
>>479は5分で作れるのか
すげぇな
557:デフォルトの名無しさん
09/03/14 20:55:45
ウィンドウの中のある座標に向かってクリックメッセージを送るAPIってありますか?
ボタン風に書いてあるメニューボタンがあるんですが、実際は絵なので
ハンドルが取れないのです。
558:デフォルトの名無しさん
09/03/14 20:58:51
クリックした際の処理を自分で走らせれば?
559:デフォルトの名無しさん
09/03/14 21:06:56
>>556
だってさ、最小コードはこれだろ?50行なんて余裕でしょ
INT_PTR CALLBACK InputBoxProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam)
{
switch(Msg){
case WM_INITDIALOG:
return SetWindowLongPtr(hDlg,DWLP_USER,lParam),TRUE;
case WM_COMMAND:
switch(GET_WM_COMMAND_ID(wParam,lParam)){
case IDOK:
{
LPTSTR p = (LPTSTR)GetWindowLongPtr(hDlg,DWLP_USER);
GetDlgItemText(hDlg,IDC_TEXT,p,*(int*)p);
}
case IDCANCEL:
EndDialog(hDlg,GET_WM_COMMAND_ID(wParam,lParam));
}
}
return FALSE;
}
560:デフォルトの名無しさん
09/03/14 21:11:01
すみません、説明不足でした。
外部アプリのメニューを操作したいのですが、そのメニューボタンが
すべて絵なんです。
561:デフォルトの名無しさん
09/03/14 21:17:30
>>559
リソース使ってる点は無視するにしても
メッセージの長さにウィンドウを合わせる処理がないのでは・・・
562:デフォルトの名無しさん
09/03/14 21:19:03
>>560
何か怪しいことに使おうとしてるんじゃないのかね
563:デフォルトの名無しさん
09/03/14 21:19:06
>>560
WM_LBUTTONDOWN じゃだめなの?
564:デフォルトの名無しさん
09/03/14 21:20:57
>>559
自信満々に出してきたコードがこれでは…
565:デフォルトの名無しさん
09/03/14 21:22:11
>>561
別にメッセージの長さに合わせる必要性が無いし、
リソース使ってるのに問題でもあるのか?
フォント決め打ちよりはマシだろ
566:デフォルトの名無しさん
09/03/14 21:24:12
てか、メッセージを設定する部分はどこ行った
567:デフォルトの名無しさん
09/03/14 21:24:22
>>561
メッセージを表示するコードがないんだから、長さを合わせる以前の問題だろうw
568:デフォルトの名無しさん
09/03/14 21:26:06
だから>>559は最小コードだって
これに肉付けしていっても50行ぐらいで十分収まるだろってこと
569:デフォルトの名無しさん
09/03/14 21:27:22
リソース使えばそりゃ>>462だって短くなるし
ちゃんとした比較にならないのでは
570:デフォルトの名無しさん
09/03/14 21:30:13
リソースもフォント決め打ちじゃないの?
571:デフォルトの名無しさん
09/03/14 21:30:18
いや、>>556の「50行・5分で作れるのすげぇ」レスを受けて5分で書いてみただけだし
572:デフォルトの名無しさん
09/03/14 21:32:02
もろもろ考慮されてるか?
573:デフォルトの名無しさん
09/03/14 21:34:00
API使いならリソースなんて使わないんじゃないか
574:デフォルトの名無しさん
09/03/14 21:35:14
リソースはソース配るのが面倒だな
575:デフォルトの名無しさん
09/03/14 21:35:58
>>573
お前アホだろw
576:デフォルトの名無しさん
09/03/14 21:36:03
>>573
リソースを使うAPIを使いたいだろw
577:560
09/03/14 21:41:02
>>562
そ、そんなんじゃないです。
>>563
カーソルを移動させてってことですか?
他のソフトで目的の外部アプリを操ってるのがあって
どうやってるのかなってのと、自分もそういうのを作る
必要があったので。
578:デフォルトの名無しさん
09/03/14 21:41:41
mouse_event, SendInput
579:デフォルトの名無しさん
09/03/14 21:46:30
> メニューボタンがすべて絵
最近こういうのホント多いよなぁ。動画編集ソフトとか特に。
使い勝手が良ければまだしも、キーボード操作を全く受け付けなかったりとか。
もう素直に標準のコントロール使ってくれよ・・・。
580:デフォルトの名無しさん
09/03/14 21:49:31
もはやあらゆるものをDirect3Dで描画する時代に入ったんだよ
581:デフォルトの名無しさん
09/03/14 22:05:54
2D(GDI)のハードウェアアクセラレーションはRADEONもGeForceも既に搭載しとらんだろ
XPはもうロートルなんだから7600GSやX1650でも積んでればいいんだ
582:デフォルトの名無しさん
09/03/14 22:12:44
>>580-581
誤爆?
583:デフォルトの名無しさん
09/03/14 22:30:59
moudamedakonosure
584:デフォルトの名無しさん
09/03/15 00:00:19
>>579-581
そこで、ActiveAccessibilityの幻想ですよ。
585:デフォルトの名無しさん
09/03/15 00:22:30
自プロセス内の全スレッドのレジスタの値を取得するAPIは無い?
586:デフォルトの名無しさん
09/03/15 00:26:33
インラインアセンブラで取ってろ
587:560
09/03/15 07:23:43
>>578
ありがとうございます。
ググってみたら出来そうな気がします。
588:デフォルトの名無しさん
09/03/15 07:40:34
レジストリエディタでキーを作成すると、日本語Windowsだと(標準)という名前でエントリが1つ
常に存在してるようなのですが、このエントリを読み書きするにはどうすれば
いいのでしょうか?よろしくお願いします。
589:デフォルトの名無しさん
09/03/15 08:02:48
588です。解決しました。MSDNに書いてありましたね。すみません。
名前にNULLまたは空文字列を設定するんですね。
590:デフォルトの名無しさん
09/03/15 11:40:33
URLリンク(www.fnn-news.com)
591:デフォルトの名無しさん
09/03/15 11:58:57
>>585
関数呼び出し自体がレジスタを変えるというのに
どうやってそんな API を作ればいいんだよ
592:デフォルトの名無しさん
09/03/15 12:12:58
CONTEXT 構造体にアクセスしたいんじゃね?
593:デフォルトの名無しさん
09/03/15 12:16:30
GetThreadContextじゃねーの?
594:デフォルトの名無しさん
09/03/15 14:36:03
espやeipの値が変わる分は補正すればいいということか
595:デフォルトの名無しさん
09/03/15 14:49:11
GetThreadContextを呼んだ時点でeaxやedxは確実に変わってるだろが
596:デフォルトの名無しさん
09/03/15 14:51:40
だから補正しろつってるだろ。
597:デフォルトの名無しさん
09/03/15 14:51:52
CONTEXT構造体がローカル変数なら
特に何ともないと思うけど・・・
598:デフォルトの名無しさん
09/03/15 14:56:38
頭悪いのが数名混じってるねぇ
GetThreadContextの実体が呼ばれるまでにAPIがレジスタを書き換えてしまってるでしょうに
GetThreadContext:
push ebp
mov ebp, esp
push dword ptr [ebp+0C]
push dword ptr [ebp+08]
call dword ptr [NtGetContextThread]
...
NtGetContextThread:
mov eax, 00000055h
mov edx, 7FFE0300h
call dword ptr [edx]
...
599:デフォルトの名無しさん
09/03/15 15:01:18
不確定性原理の話じゃないのかw
600:デフォルトの名無しさん
09/03/15 15:04:31
そんな糞実装になってんのか?
601:デフォルトの名無しさん
09/03/15 15:05:35
つーかインラインアセンブラ使えばいいのにAPIてw
あ、VBプログラマーの方でしたかサーセンwww
602:デフォルトの名無しさん
09/03/15 15:09:53
>>600
糞なのはお前だ
少なくともeax,ecx,edxは「関数側で自由に書き換えていいレジスタ」だ
そんな事も知らんのか
603:デフォルトの名無しさん
09/03/15 15:29:37
気にするな。
そもそも、MSDNライブラリには、SuspendThreadで止めてからやれって書いてあるんだ。
(経験上、動いているスレッドを指定してもエラーになることはないけど)
URLリンク(msdn.microsoft.com)
604:デフォルトの名無しさん
09/03/15 15:59:37
動いてる他スレッドなんか無意味だろ
API呼出から戻ってくる間にもスレッドが動きつづけていてレジスタの値が刻一刻と変わる
605:デフォルトの名無しさん
09/03/15 16:01:05
>>602
それが何か関係あるか?
レジスタのスナップショットを取りたいという目的を達成できてないじゃないのよ
606:デフォルトの名無しさん
09/03/15 16:04:32
>>605
お前がアホなのはよくわかった
607:デフォルトの名無しさん
09/03/15 16:05:27
お前がアホなのもよくわかった
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5493日前に更新/205 KB
担当:undef