- 1 名前:デフォルトの名無しさん mailto:sageteoff [2016/10/08(土) 12:33:02.29 ID:0jaJMPXG.net]
- Win32APIについての質問はこちらへどうぞ。
■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。 英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで ■過去スレ Win32API質問箱 Build122 echo.2ch.net/test/read.cgi/tech/1451988219/
- 566 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 17:52:35.12 ID:xC3FSY5Y.net]
- モーダルダイアログをメインの親とし、その後動的にサブメニューを表示する仕組みがあります。
サブメニュー表示中も親側の操作を可能とするため、サブメニューはモードレスとしていますが、 TABなどのキー入力が効きません。 辛うじて、初期フォーカスがあるボタンのみスペースキーを受け付けます。 マウス操作は問題ありません。 原因としてはサブメニューのキー処理をする IsDialogMessage を含むメッセージループが必要 なんだろうと思いますが、こういう場合の定石というのはあるのでしょうか? 思い付く実装は以下2パターンです。 その1 親もモードレスとし、親のメッセージループ中にサブメニューのメッセージも処理する仕組みを入れる。 その2 サブメニュー表示後に別スレッドを立ち上げ、そこでサブメニューのメッセージループを回す。 普通はこうだよ。とか他の方法などありましたらお願いします。
- 567 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 17:55:40.75 ID:xC3FSY5Y.net]
- ちょっと語弊がありましたので訂正です。
ここで言う「サブメニュー」とは、CreateMenu などで作られる一般的に言うメニューではなく、 単なるポップアップスタイルのタイトルなしダイアログのことです。 CreateDialog で画面を作っています。 勝手に言葉を作ってすみません。
- 568 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 18:23:36.29 ID:9HH9Hffg.net]
- 2つウインドウがあって、1つはメインウインドウ、もう1つはメニューウインドウ
メインウインドウにキーフォーカスがあるとメニューウインドウでキー操作できず、メニューウインドウにフォーカスがあるとメインウインドウでキー操作できない メッセージを適宜流せばいいんじゃないか?
- 569 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:23:16.04 ID:xC3FSY5Y.net]
- フォーカスはそれがあるウィンドウで処理できるようなUIを考えています。
ユーザーがメインウィンドウにフォーカスを(マウスなどで)移せば、 以降はそのウィンドウでキーボード操作ができればいいです。その逆も然り。 適宜メッセージを流すにしても、結局どこでメッセージループを回すかという 話になるのではと思うのですが、違うのでしょうか?
- 570 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 22:43:12.22 ID:iYQoJoP4.net]
- なにいってんだこいつ
- 571 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 23:28:35.38 ID:lhjyuLrL.net]
- 分からないのに無理して答えるなよ
- 572 名前:デフォルトの名無しさん [2017/04/13(木) 02:45:23.01 ID:8XBnDqPS.net]
- 最近よく足がつる
- 573 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 11:42:08.71 ID:9jlRESvt.net]
- >>562
フォーカスを移してキーボード操作なんて危険なことを平気でやろうとする人はWin32APIなんて使わない方が良いんじゃね? 普通はフォーカスを移そうとしているオブジェクトにフォーカスを移す移さない関係なく文字列送信するもんじゃないの? キーボード操作中にユーザーが別のウィンドウをクリックした場合とか考えないの?
- 574 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 13:32:39.75 ID:OCOdT3+H.net]
- >>562
難しく考えるよりも、例えば、MVCベースで考えて設計したらいいんじゃねーの? オブジェクト指向で設計するのもいいし、データ処理ありきで設計するのもあり、やりやすいように作ればいいよ。
- 575 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 17:59:38.26 ID:zh4lU2gJ.net]
- >>566
なんで何も理解できていないのに無理に話に入ろうとするの?
- 576 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 18:16:04.36 ID:xmE6C1ua.net]
- spyで見てどこにメッセージ届いてるか見ろ
- 577 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 00:20:20.46 ID:+RGtmVs/.net]
- フォースを使うのじゃ
- 578 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 00:39:04.52 ID:6ECgJlCU.net]
- Windows 10 Creators Update入れたら
DrawTextで大きめのフォントの描画が異常に遅くなった。 高DPI未対応のアプリは見捨ててGDIはシンプルに動いてほしい。
- 579 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 05:38:58.24 ID:kIyPPZzD.net]
- >>567
2行目めちゃくちゃだなw
- 580 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 10:41:54.49 ID:7fCdXhh/.net]
- >>561
>メッセージを適宜 それが質問内容でしょうよ。 >>566 タブコンに子ウィンドウ貼り付けて画面切り替えやキー入力受付なんて 日常茶飯事なのになにとち狂ったこと言ってるんだよ。 >>572 ほんとそう。 自分の知ってる単語を並べただけだわな。
- 581 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 11:11:32.10 ID:LVRPT4/o.net]
- Win32APIの後継でc++/cliじゃないライブラリってないのかね?
- 582 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 11:29:24.19 ID:iAr+rl+J.net]
- win32apiはオンリーワンで現役なので後継ってもんがそもそもなし
.netはラッパーライブラリ、cliは言語仕様 >>574の求めてる物の意味が分からん UWPでも触ってろと言えばいいのか?
- 583 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 15:40:59.51 ID:Z/bjVn5R.net]
- しいて言えばQtじゃね?
Qtのアプリって結構あるよね
- 584 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 18:23:47.19 ID:R7yCPQGT.net]
- >>574
ライブラリってかAPIはユニバーサルwinのがそれじゃないの?
- 585 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 18:31:24.82 ID:uRqmXJpf.net]
- WinRT API
- 586 名前:デフォルトの名無しさん [2017/04/14(金) 22:27:03.58 ID:Gjx6wpyy.net]
- ここでWTLがまさかの大復活を遂げるわけよ
- 587 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 06:16:39.59 ID:qt9qpnGQ.net]
- ちょっとしたもんつくるにはwtlが一番いい
- 588 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 18:14:11.71 ID:JjgxHVsv.net]
- >>574
Windows API 後継っつーか名前が変わっただけだが
- 589 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:01:23.37 ID:j+7+fM28.net]
- Windows10S では Win32/.net アプリは動かないだと。
UWPに変換すれば行けるらしいが、もうおしまいか?
- 590 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:15:11.42 ID:NU+YZp1H.net]
- Windows10Sが相手にされなくて終わるだけ。
- 591 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:41:30.18 ID:W8ns9+oF.net]
- 既に相手されていない感
- 592 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 03:08:44.86 ID:IUUvTOhg.net]
- お前らが相手にされてないじゃん
おっさんしかいないだろうこのスレ
- 593 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 08:12:57.54 ID:WdEsZnG0.net]
- 今回のターゲット層はメインストリームじゃないから
既存のアプリが使えなくても不満は少ないと踏んでるんだろう まあWindowsRTみたいに核爆死はしないんじゃないか MSもそんなに数を出荷しないだろうから もう一度WindowsRTをSurfaceやらに載せることを夢見ているのなら やはりもう一度爆死するだろう
- 594 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 18:13:03.55 ID:ERU+CvkU.net]
- 教育用途だっけ
今時のキッズは学校支給タブレットの制限外してゲームしてるらしいからその点ではいいかもな
- 595 名前:片山博文MZ mailto:age [2017/05/06(土) 18:59:21.43 ID:0OTJXmRc.net]
- あるプログラムで使用中のGDIオブジェクトの個数を数える方法はありますか?
- 596 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:36:55.22 ID:TAVkl+y8.net]
- タスクマネージャで見れるよ
- 597 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:50:23.24 ID:IA0Dpe0I.net]
- GetGuiResources(hProcess, GR_GDIOBJECTS)
- 598 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:53:17.94 ID:Mwx5Td89.net]
- >>588
GetGuiResources GR_GDIOBJECTS(0) Return the count of GDI objects. ってあるし。
- 599 名前:片山博文MZ mailto:age [2017/05/06(土) 20:54:47.07 ID:NWV3MG9s.net]
- ありがとー。
- 600 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 21:06:22.69 ID:HiVS0qll.net]
- なにするつもりなのさ
- 601 名前:片山博文MZ mailto:age [2017/05/06(土) 21:08:39.06 ID:NWV3MG9s.net]
- メモリーリーク対策やデバッグやらだよ。
- 602 名前:雪風 [2017/05/06(土) 21:54:04.69 ID:QwsGrGdx.net]
- >>593
自演 オナヌーだろ
- 603 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 22:06:22.10 ID:sQ11ayCM.net]
- 書いてて恥ずかしくないの?
- 604 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 02:01:32.34 ID:KMqw+OzL.net]
- memory leak detector
https://tocsworld.wordpress.com/2014/09/02/vc%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E6%A4%9C%E5%87%BA%E3%83%84%E3%83%BC%E3%83%AB/
- 605 名前:デフォルトの名無しさん [2017/05/07(日) 07:23:08.46 ID:fOF53fEF.net]
- firefoxとかリーク笑えるよな
- 606 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 09:36:37.30 ID:PBqzgUoz.net]
- 特定のアプリケーションがハング状態になってるかを判断する方法ありませんか?
.netではRespondingプロパティで判断できるようですがwin32apiでやりたいので
- 607 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 09:45:13.26 ID:XSL1JKA6.net]
- そこまで分かってるならソース読めよ
https://github.com/Microsoft/referencesource/blob/master/System/services/monitoring/system/diagnosticts/Process.cs SendMessageTimeoutでWM_NULLを投げてるだけだな
- 608 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 10:04:41.73 ID:4hsRJ4JE.net]
- その質問コピペだよ
- 609 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 10:17:40.46 ID:PBqzgUoz.net]
- ありがとうございました!
- 610 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 11:30:51.02 ID:fjUlBZmQ.net]
- >>600
これ使ってDoS攻撃みたいなこと出来るんかな
- 611 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:20:50.87 ID:2/UhKD8y.net]
- 最近のアプリに多い、重い処理は別スレッドで実行してGUIが固まらないようにしてる場合は役に立たないかな
- 612 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:48:08.53 ID:LCRfM0F6.net]
- >>604
それは「重い処理のときにハングアップしているように見える」というだけの話で、 そういうレベルでの意味ならマルチスレッド化によって役には立たない。 でもそういうマルチスレッド化したソフトウェアでも 画面描画の時の不具合などでハングアップすることもあるわけで役に立たないということはないよ。
- 613 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 22:06:52.23 ID:2/UhKD8y.net]
- >>605
バグでずっと重い処理が終わらない場合を想定してた。ウィンドウメッセージは処理されるものの、事実上のハング。 確かに全く役に立たないわけではないね。
- 614 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:47:50.15 ID:Ephb2XFu.net]
- ウィンドウがわかるならIsHungAppWindowってのがある
- 615 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:35:27.31 ID:bnhY1qc6.net]
- >>606
動画の変換みたいに純粋に時間がかかる場合とか、ユーザーのクリック待ちとかもあるから、判断はできんだろうな
- 616 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:56:46.04 ID:SJjrbjyQ.net]
- 止めようとしても停まらないもの?
WindowsUpdateかな?
- 617 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 11:25:51.30 ID:Cp7+CNi6.net]
- >>609
ネットワーク切れてからのタイムアウトも異常に遅いんだよな
- 618 名前:デフォルトの名無しさん [2017/05/14(日) 19:29:07.89 ID:QF9yNcvN.net]
- まだ見放されてないぞ
【IT】マイクロソフト、サポート切れOS「Windows 8、Windows XP、Windows Server 2003」にも修正ソフト提供 asahi.2ch.net test/read.cgi/newsplus/1494723803
- 619 名前:デフォルトの名無しさん [2017/05/19(金) 19:48:39.48 ID:7xgwPeWo.net]
- 質問ささてください
構造体AをGlobalAllocで領域を確保して値を入れた後、構造体BをGlobalAllocで確保すると、構造体Aのメンバであるポインタのアドレスが変わってしまうのですが何が原因なのでしょうか?
- 620 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 20:35:00.88 ID:bDipVMhT.net]
- あるプロセスのメモリ情報のリージョンサイズや属性を調べるにはどのAPIを使えばいいですか?
- 621 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 20:49:42.55 ID:McGsnd5l.net]
- >>612
Windowsは働き者の賢いOSだからなぁ
- 622 名前:デフォルトの名無しさん [2017/05/19(金) 21:09:20.04 ID:/MnRfLXT.net]
- 動かしたくないならLockしてください
- 623 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:11:02.62 ID:vqbyNvRL.net]
- >>612
GlobalAllocじゃなくて自分で書き換えてるんでしょ
- 624 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:22:03.75 ID:Q8L1LGu9.net]
- >>612
GMEM_FIXEDを指定していないGlobalAllocでロックカウントが0の場合はメモリの再配置が起きる GlobalLockとGlobalUnlockの間なら 「構造体Aのメンバであるポインタのアドレス」は変わることがないけど GlobalUnlockを呼び出しロックを解除した場合は再配置される可能性がある
- 625 名前:デフォルトの名無しさん [2017/05/20(土) 18:36:33.10 ID:urI3JAo7.net]
- 皆様レスありがとうございます
>>612 構造体BのGlobalAllocをコメントアウトすれば問題なく動くのでこれが原因なのはたぶん間違いないです >>617 構造体A自体のLockやFIXは試しましたがダメでした。構造体Aは領域確保後にwinAPIに渡して値を格納してもらうのですが格納後にメンバ全ての固定が必要なのでしょうか? ともあれメモリ再配置が原因なのですね。ありがとうございました。この方向でもう少し試してみます。
- 626 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 18:43:52.60 ID:YAniTqrY.net]
- 違うんじゃね
- 627 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:05:41.41 ID:rnnQH6fx.net]
- ソースコードにイージーミスがある可能性の方がクッソ高いと思う
- 628 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:06:46.68 ID:opost44+.net]
- >>618
そもそもの使い方が間違っているんじゃないか? >構造体Aは領域確保後にwinAPIに渡して そのwinAPIは何? というかなぜ隠す必要があるのか
- 629 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:08:39.87 ID:YAniTqrY.net]
- 必要最小限の再現ソース晒してからだな
- 630 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 02:26:55.08 ID:8+aEBKAw.net]
- 構造体A、もしくはその近くのメモリ確保量が足りていないような気がする
スタック破壊、または、メモリ内容破壊では?
- 631 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 10:34:21.57 ID:UufpipHO.net]
- >>613
VirtualQueryEx
- 632 名前:デフォルトの名無しさん [2017/05/21(日) 10:40:12.71 ID:8IHB32RP.net]
- すみません。自分がC++素人でメモリ周り疎いのでよくあるトラブルかなと思い、動作確認できている部分は抽象的に書きました。イージーミスの可能性はかなりあります。
ソースが手元にないのですが、具体的にはこのような処理をしています。スマホから書いたので文法ミスあるかもしれません。 メイン処理 DWOR count=0; LPBYTE pStructA = (LPBYTE)GlobalAlloc(GHND,sizeof(0)); GetPrinterInfo(pStructA,&count);//自作関数 pStructAに構造体格納 /*ここでブレーク張ってpStructAのpNameのアドレスが正しい文字列指してるのは確認済み*/ PStructB pStructB = (PStructB)GlobalAlloc(GHND,sizeof(StructB)*count); /*ここで改めてpNameを取得しようとするとpNameのアドレスがpStructBを確保する前と変わっている。元の文字列データは以前として前のアドレス上に存在してることは確認済み。pStructA自体のアドレスは変わっていない */ for(i=0 ;i<count;i++){ LPTSTR name= (((PRINTER_INFO_1*)pStructA)+count)->pName; } 〜〜〜 自作関数 (動作確認済み) DWORD GetPrinterInfo(LPBYTE pStructA, LPDWORD count){ DWORD result=0; DWORD pNeeded=0; //必要サイズ取得 EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,NULL,pdw &pNeeded,count); //必要サイズ再確保 Global ReAlloc(pStructA,pNeeded,GHND); //ここでPRINTER_INFO_1構造体をpStructAに格納 EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,pStructA,pdw pNeeded,count); return result; }
- 633 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:10:23.22 ID:Bmvuj1qA.net]
- GlobalAllocの戻り値のハンドルを直接キャストしてポインタに代入したら駄目だろ
ハンドルを引数としてGlobalLockを呼び出して、その戻り値をキャストしてポインタに代入しろ
- 634 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:25:17.73 ID:8zMWeNzv.net]
- 蓋を開けてみればやはりこんなもんだ
- 635 名前: mailto:sage [2017/05/21(日) 11:29:51.82 ID:pUWFtSb1.net]
- p = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
HeapFree(GetProcessHeap(), 0, p); でうまくやってるよ,GlobalAlloc は win3.1 の仕様を下敷きにしているので使いにくいよ
- 636 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 14:52:03.05 ID:2E7Z41P0.net]
- オワコンだしな
今はもうmallocでいいよ
- 637 名前: mailto:sage [2017/05/21(日) 15:16:35.99 ID:pUWFtSb1.net]
- >>629
それはどこにあるのかな?
- 638 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:25:59.44 ID:qIzrXw0L.net]
- >>625
関数の仕様ぐらい確認しろといいたい https://msdn.microsoft.com/ja-jp/library/cc430065.aspx GMEM_FIXEDを指定していないGlobalAllocはメモリハンドルを返す アドレスではなくハンドルであり、このハンドルをGlobalLockに渡すことでメモリアドレスを取得できる メイン処理 DWORD count=0; HGLOBAL gm = GlobalAlloc(GHND,sizeof(0)); GetPrinterInfo(gm,&count); LPBYTE pStructA = (LPBYTE)GlobalLock(gm); for(i=0 ;i<count;i++){ LPTSTR name= ((PRINTER_INFO_1*)pStructA)[i].pName; } 〜〜〜 DWORD GetPrinterInfo(HGLOBAL gm, LPDWORD count){ DWORD dwSize; DWORD result=0; DWORD pNeeded=0; EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,NULL,0,&pNeeded,count); Global ReAlloc(gm,pNeeded,GHND); dwSize = GlobalSize(gm); LPBYTE pStructA = (LPBYTE)GlobalLock(gm); EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,pStructA,dwSize,&pNeeded,count); GlobalUnlock(gm); return result; }
- 639 名前:デフォルトの名無しさん [2017/05/21(日) 16:40:14.23 ID:s+TjotGN.net]
- GMEM_MOVEABLE
移動可能メモリを割り当てます。Win32 環境では、物理メモリ内でメモリブロックが移動されることは決してありませんが、既定のヒープ内で移動することは可能です。 戻り値は、メモリオブジェクトのハンドルです。このハンドルをポインタへ変換するには、GlobalLock 関数を使います。 この値を GMEM_FIXED フラグと組み合わせることはできません。 Win32では移動することがないあるよって言ってるし、GPTRフラグを使うか、メモリ確保をmallocなりに置き換えたほうが良いね EnumPrintersに渡すバッファのポインタは別になんでも良いみたいだし
- 640 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:51:37.43 ID:UufpipHO.net]
- GlobalAllocはクリップボード弄る時くらいでいいよ
- 641 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 18:27:54.67 ID:8+aEBKAw.net]
- こうゆう奴がプロジェクトにいると、デバックでは動くがリリースでは動かない
プログラムとか出来上がるんだろうな。。。 (もちろん、リリース+デバック情報埋込なら動く最悪のパターン)
- 642 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 03:45:08.81 ID:6WP6IGo9.net]
- mallocでも、newでも好きなのつかったらいいんじゃね?
- 643 名前:デフォルトの名無しさん [2017/05/22(月) 07:02:35.87 ID:1fjxccfj.net]
- sizeof(0) ...
- 644 名前:デフォルトの名無しさん [2017/05/22(月) 10:58:01.86 ID:ZhEHdQZR.net]
- みなさま本当にありがとうございました。
メモリ確保の方法に関しては古いのはなんとなくわかってるのですが、意見できる程知識がないのが実情です…… ともあれ解決方法の兆しが見えたので頑張ってみます。 >>634 耳が痛いですが自分も本当にそう思います……個人的には勉強になるのでいいんですが…… リリース気をつけておきます
- 645 名前:片山博文MZ mailto:age [2017/05/26(金) 15:19:18.57 ID:hi3mNk6y.net]
- ※未承認広告※
Win32メッセージクラッカー簡単入力。 MsgCrack https://github.com/katahiromz/MsgCrack
- 646 名前:片山博文MZ mailto:age [2017/05/27(土) 10:36:14.50 ID:je1Ltzc3.net]
- ※未承認広告※
これがWin32のラバーバンドやで。重要な技術だから、確認しとくれや。 https://github.com/katahiromz/RubberBandSample
- 647 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 10:39:23.30 ID:I7pwMhhb.net]
- 皆さんは、ダイアログの HWND に対し SetWindowLongPtr, GetWindowLongPtr を使用する場合
GWLP_USERDATA と DWLP_USER をどのように使い分けていますか?
- 648 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 13:16:53.40 ID:olQh0zw8.net]
- 使い分けもなにも
get してから & とか | とかして set してる
- 649 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:22:26.39 ID:+7k/9HY0.net]
- エディットボックスにES_MULTILINEを付けると
Ctrl+Aですべて選択ができなくなってしまうのだけど、 これはなにか技術的な理由があってのことですか? それとも、昔から修正されていないだけのバグですか?
- 650 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:39:15.66 ID:+7k/9HY0.net]
- 642の追記ですが、ES_MULTILINEだけでなく、ES_READONLYを付けたときも、
同じようにCtrl+Aが効かなくなるようです。
- 651 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 12:11:52.68 ID:Jdv7hZ4r.net]
- >>643
それはサブクラス化で対応
- 652 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 12:19:57.15 ID:+7k/9HY0.net]
- >>644
つまり、ES_MULTILINEやES_READONLYはCtrl+Aに対応すべき状態ではない というような技術的な理由があるわけではなく、 単にマイクロソフトが修正していない昔からのバグで、 サブクラス化などで対応しても問題ないものなんですよね?
- 653 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 13:35:54.11 ID:pxuX+RKK.net]
- ctrl+aが全選択という統一ルールがないとかなんとか
- 654 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 19:35:40.93 ID:+7k/9HY0.net]
- >>646
エディットボックスが常にCtrl+Aを扱っていないなら納得するんですが、 ES_MULTILINEやES_READONLYが付いているときだけ効かなくなるんです。
- 655 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 10:24:59.35 ID:0e975zeL.net]
- >>647
挙動としては認識通り 技術的な問題ではないのでサブクラスなりインスタンスなりのKeyDownイベントでSelectAll()して構わない 普通はついでにCopy()やCut()のショートカットキー処理もつけておく
- 656 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 11:09:41.39 ID:pFacwd6b.net]
- >>648
解説ありがとうございます。 エディットボックスの処理を信じずに、Ctrl+Aなどの動作を載せてしまいます。
- 657 名前:デフォルトの名無しさん mailto:sage [2017/06/23(金) 01:36:52.51 ID:/7Z8Xk53.net]
- CLIP STUDIO PAINTのようにツールっぽくする為にウインドウ全体を茶色に統一するようなWin32APIと言うのがありますでしょうか?
SKINかもしれないのですがSKINの仕方が解りません。 それとMediBang Paint Proのようにウインドウ全体でなくメニューとツールウインドウだけを茶色に統一する方法も 解りましたらお願いします。
- 658 名前:デフォルトの名無しさん mailto:sage [2017/06/23(金) 03:31:09.37 ID:1Ua/Rfq9.net]
- >>650
ないです。
- 659 名前:デフォルトの名無しさん [2017/06/23(金) 10:30:01.91 ID:0OdP20aK.net]
-
- 660 名前:学生でもランサム作ってるんだから
がんがれ [] - [ここ壊れてます]
- 661 名前:デフォルトの名無しさん [2017/06/24(土) 05:45:55.83 ID:AiSsJYjg.net]
- >>652
ランサムだけなら誰でもできる。ランサムウェアと呼ぶから重要なことが抜けて伝わってしまう。
- 662 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 12:23:00.00 ID:29Lhuze+.net]
- ただのバッチだったしな
- 663 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 12:44:27.58 ID:TJcGM6+6.net]
- 警察は実績が欲しく、子供は有名になりたかったらしいので
両者の思惑が一致した最高の形なんだろう
- 664 名前:デフォルトの名無しさん [2017/06/24(土) 18:30:11.33 ID:AiSsJYjg.net]
- >>654
重要なのはWindowsの穴をついてプログラムを実行できたところだからね。
- 665 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 18:34:45.55 ID:xexj0oOj.net]
- 穴ついてたのかよw
どうせこのbat実行してね、だろうと思ってたんだが違ったか
- 666 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 18:47:24.91 ID:fDMY1AQ8.net]
- エッチなビデオ.avi .bat
とかじゃないの?
|

|