Win32API質問箱 Build23
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGBuild22:http://pc5.2ch.net/test/read.cgi/tech/1092524669/
Build21:http://pc5.2ch.net/test/read.cgi/tech/1090422324/
Build20:http://pc5.2ch.net/test/read.cgi/tech/1088140233/
Build19:http://pc5.2ch.net/test/read.cgi/tech/1084697545/
Build18:http://pc5.2ch.net/test/read.cgi/tech/1081702990/
Build17:http://pc5.2ch.net/test/read.cgi/tech/1077470361/
Build16:http://pc2.2ch.net/test/read.cgi/tech/1073830065/ ★
Build15:http://pc2.2ch.net/test/read.cgi/tech/1069339866/ ★
Build14:http://pc5.2ch.net/tech/kako/1065/10653/1065328397.html
Build13:http://pc5.2ch.net/tech/kako/1059/10595/1059549320.html
Build12:http://pc5.2ch.net/tech/kako/1056/10560/1056033645.html
Build11:http://pc5.2ch.net/tech/kako/1052/10526/1052651750.html
Build10:http://pc5.2ch.net/tech/kako/1047/10478/1047819779.html
Build9:http://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
Build8:http://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
Build7:http://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
Build6:http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
Build5:http://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
Build4:http://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
Build3:http://pc.2ch.net/tech/kako/1017/10170/1017072275.html
Build2:http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Build1:http://pc.2ch.net/tech/kako/991/991576947.html
(★は「いやー ごめんなさい。」に巻き込まれた模様
0002デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/default.asp
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
http://www.google.com/
Win32 API入門
http://black.sakura.ne.jp/~third/system/winapi/win.html
WIN32 Programming
http://www7.plala.or.jp/keny01/win32/
Win32 SDK Programming
hhttp://www7.plala.or.jp/keny01/windows/win32/
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGはじめてやった わーい
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG> http://www7.plala.or.jp/keny01/win32/
これリンク切れてるよ
0007デフォルトの名無しさん
NGNG修正忘れてた。
http://www7.plala.or.jp/keny01/windows/win32/
0008ほんたま
NGNGunicodeが「4F 00 4B 00 27 59 0B 4E B9 5B 50 5B」の場合、これは「OK大下容子」の意味だ。
これをchar型の文字列pctextに取得して、この時点でpctextの内容をMessagBoxで表示してみると「ok'Y・Nケ[P[」だ。
これをWideCharToMultiByteを使って変換し、変換した文字列temptextを表示してみると「?大下容子」になっているんだ。
おみゃ〜らよ、なぜOKはちゃんとならないのかな?
これ、教えれ、ばかおみゃ〜ら、こら!!!!!!!
0009デフォルトの名無しさん
NGNG氏ね
0010ほんたま
NGNGこら、教えれ、ばかこら!!!!
0011デフォルトの名無しさん
NGNGBuild15:ttp://saba.haiiro.info/uploader/file/0587.html
Build16:ttp://saba.haiiro.info/uploader/file/0588.html
0012デフォルトの名無しさん
NGNGおつ。
>>11
いただきます。
0013デフォルトの名無しさん
NGNGアプリを常にタスクバーの前面に置くために、
タスクバーを親に指定してウィンドウを表示しているヤシいると思う。
XPSP2適用後だと、その前面表示アプリのせいで、
スタートボタンから展開されるはずのポップアップ形式のメニューなどが、
不意に閉じてしまう現象が起こるようになった。
XPSP2では、親をタスクバーにしているアプリは要注意だ。
0014デフォルトの名無しさん
NGNGHTND_MOSTTOPだっけ?
そんな感じの指定すりゃいいのに
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG> アプリを常にタスクバーの前面に置くために
0017デフォルトの名無しさん
NGNG<< "乙";
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNGなんで、カラムを追加するときはindexを指定するのに
アイテムを追加するときはデータの中にindexが含まれてるんだ?
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG$70兆を投与し現行のWindows全てにパッチを当て
リストビューアイテム追加時のデータからindexを分離した
897 名前:デフォルトの名無しさん[sage] 投稿日:04/02/29(水) 22:21:15
ListViewむかつく。
変更が少ないカラムは良いけど、
アイテムデータにはindexを含めろよ。別管理マンドクセ。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGその情報はどこで得られるのでしょうか。
0026デフォルトの名無しさん
NGNG日付はGetDateFormat、
数値はGetNumberFormatで整形できる。
形式を知りたいだけならGetLocaleInfo。
0027デフォルトの名無しさん
NGNGありがとうございました、そのまんまですね。
GetDateFormat/GetTimeFormatは見つけていたのにNumberFormatは見落としていたようです。
0028デフォルトの名無しさん
NGNG所有者の次、作成者の前に details.str が L"" の要素が列挙されます。
エクスプローラのカラムのカスタマイズでは出てこないのですが、これは何なのでしょうか?
002928
NGNG0030デフォルトの名無しさん
NGNGEM_REPLACESELで文字を最後に追加した時に、
勝手にスクロールしないようにするにはどうすれば良いでしょうか?
スクロールバーの位置を弄ってみたんですがだんだんずれて行きます。
SDKだけで作ってます。
いい方法があれば教えてください。
リッチエディットでも構いませんっ
003130
NGNG0032デフォルトの名無しさん
NGNGMapFanやデジタル全国地図などのように、オンラインで多ユーザーの同時アクセス、
大きめのデータのやりとり(地図ベクトルデータ)を前提にしたシステムを
作る場合、データ送受信においてはどういったアプローチがベストでしょうか?
0033デフォルトの名無しさん
NGNGロードバランサー & LAMP
0034デフォルトの名無しさん
NGNG//何が悪いのでしょうか?
#include <windows.h>
static LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) {
NMHDR* nmhdr;
switch( msg ) {
case WM_DESTROY:
PostQuitMessage( 0 );
break;
case WM_NOTIFY:
nmhdr = (NMHDR*)lp;
if( nmhdr->code == BN_CLICKED ) {
// hogehoge
}
break;
default:
return DefWindowProc( hwnd, msg, wp, lp );
}
return 0;
}
//続きます
0035デフォルトの名無しさん
NGNGextern int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) {
WNDCLASSEX wcex; HWND hwnd; MSG msg; BOOL res;
wcex.cbSize = sizeof(wcex);
wcex.style = 0;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
wcex.hbrBackground = (HBRUSH)COLOR_WINDOW;
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "test";
wcex.hIconSm = NULL;
RegisterClassEx( &wcex );
hwnd = CreateWindowEx( 0, "test", "test", WS_OVERLAPPEDWINDOW, 0, 0, 300, 300, NULL, NULL, hInstance, NULL );
CreateWindowEx( 0, "BUTTON", "test", (WS_CHILD|WS_VISIBLE), 100, 100, 100, 100, hwnd, (HMENU)0x1000, hInstance, NULL );
ShowWindow( hwnd, nShowCmd );
UpdateWindow( hwnd );
while( ( res = GetMessage( &msg, NULL, 0, 0 ) ) != 0 ) {
if( res > 0 ) {
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
return 0;
}
0036デフォルトの名無しさん
NGNGListViewを仮想リストビューとして使っています。
項目の表示などはちゃんと出来ているのですが、
Shiftを使用した複数選択をした際に、選択情報が
LVM_GETNEXTITEM などに反映されないようです。
(LVM_GETNEXTITEM で選択アイテムを数えるプログラムを書いてみましたが
Shiftによる選択を除いて、ちゃんと動作しました。)
これは、ListViewの仕様なのでしょうか?
003734
NGNG0039デフォルトの名無しさん
NGNGそりゃそうだ。通知メッセージは、コントロールが親に送るもんだから
BN_CLICKED なら WM_COMMAND だよ
0040デフォルトの名無しさん
NGNGcbWndExtra→Set[Get]WindowLong
cbClsExtra→Set[Get]ClassLong
がわかったのですが、これはどのように使い分ければいいのですか?
0041デフォルトの名無しさん
NGNGcbWndExtra→ウィンドウ毎に固有のデータを格納
cbClsExtra→ウィンドウクラスから作られた全てのウィンドウが共有するデータを格納
0042デフォルトの名無しさん
NGNGWindows2000、XPpro(日本語、英語版)、Windows98(日本語版)では文字が縦に
出力されるのですが、Windows98の英語版でのみ、文字列が横並びに出力されて
しまいます。
読み込みをしているビットマップのサイズは縦x横=828x1165ですが、
何かWindows98での制限とかあるのでしょうか?
hDCCC = GetDC(0);
hBitmapDIB = ::CreateDIBSection(hDCCC,bif,DIB_RGB_COLORS,(VOID**)&pDIB,NULL,0);
hDCBB = CreateCompatibleDC(hDCCC);
ReleaseDC(0,hDCCC);
hBMMM = (HBITMAP)SelectObject(hDCBB,hBitmapDIB);
hFOnt = CreateFont(iFontHeight,0,2700,2700,FW_REGULAR,FALSE,FALSE,FALSE,DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,PROOF_QUALITY,
FIXED_PITCH | FF_MODERN,NULL);
hFOOO = (hFOnt)SelectObject(hDCBB,hFOnt);
SetBkMode(hDCBB,TRANSPARENT);
TextOut(hDCBB,dwX,dwY,buf,strlen(buf));
::CopyMemory( (BYTE*)m_lpNewImage + m_nHeaderSize,pDIB, m_nImageSize );
SelectObject(hDCBB,hFOOO);
SelectObject(hDCBB,hBMMM);
DeleteObject(hFOnt);
DeleteObject(hBitmapDIB);
DeleteDC(hDCBB);
0043ほんたま
NGNGあれは、別にRECT構造体でなくてもいいんだぞ。
自分でKINTAMA構造体をつくって、そのメンバをOMANKO1、OMANKO2,OMANKO3,OMANKO4という4つのint型にして、
rect.left、rect.right、rect.top、rect.bottomのかわりに、
KANTAMA.OMANKO1、KANTAMA.OMANKO2、KANTAMA.OMANKO3、KANTAMA.OMANKO4をつかってもまったく問題ないぞ!!!
0044ほんたま
NGNGWINで定義されている構造体は全部そうだ。
おみゃ〜らよ、WINで定義されている構造体を使う必要はまったくない。
メンバの型と数さえ同じなら、自分で好き勝手な構造体を作って、それを使ってもまったく問題ない!!!
おみゃ〜らよ、知らなかったろ?
0045デフォルトの名無しさん
NGNG詰め物の位置や数も気にしないで良いんですか?
0046ほんたま
NGNG正確に言うと、詰め物で気にしなければならないのは、数、型、順番だ。
逆に言うと、詰め物の数、型、順番さえ合っていれば、WIN定義の構造体を使わなくてもいいってことだ。
自分で好き勝手な構造体をつくって使えばいい。
0047デフォルトの名無しさん
NGNG詰め物の型って?
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG変更するにはどうすればよいのでしょう?
005049
NGNG0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG危うくオーナードローに踏み切りかけました。ありがとうございまs
0053デフォルトの名無しさん
NGNGRECT構造体へのポインタにキャストしても
使えるねんでーたぶん。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG誰か教えてください、
0056デフォルトの名無しさん
NGNGスレッド1からスレッド2にPostMessage()で
ある構造体typedef struct foo_tag{...}FOO;をポインタで渡す場合、自動変数で渡した方がいいのでしょうか?
それともmallocした方がいいのでしょうか。
どういう指針で考えたらいいのでしょうか?
(1)FOO foo;
PostMessage(hwnd,MSG,&foo,0);
(2)FOO *foo
PostMessage(hwnd,MSG,foo,0);
0057デフォルトの名無しさん
NGNG005856
NGNGスレッドが二つ、スレッド1とスレッド2あったとします。
スレッド1からスレッド2にPostMessage()で
ある構造体typedef struct foo_tag{...}FOO;を渡す場合、自動変数で渡した方がいいのでしょうか?
それともmallocした方がいいのでしょうか。
どういう指針で考えたらいいのでしょうか?
(1)FOO foo;
PostMessage(hwnd,MSG,&foo,0);
(2)FOO *foo
PostMessage(hwnd,MSG,foo,0);
0059デフォルトの名無しさん
NGNG006056
NGNG渡された側でディープコピーすれば値はわたるが、
他のスレッドがこのPostMessageを呼び出す関数を使ったときにこのfooのスタック領域を上書き(初期化)してしまうということですね。
0061デフォルトの名無しさん
NGNGんー?「このPostMessageを呼び出す関数を使ったとき」に限らないよ?
0062デフォルトの名無しさん
NGNG変数の生存期間の問題なんで自分でタイミングを完全に理解できてないと
自動変数を使うのはまずい。
0063デフォルトの名無しさん
NGNGつまりSendMessageは同期関数で、PostMessageは非同期関数。
非同期関数はメッセージを渡したらすぐにリターンするから、Postされた側は処理を継続できる。
タイミングとは、Postされた後にその渡された&fooを呼び出した側でまた操作する(消去したり、値を変えてしまう)のはいつか
ということですね。
0064デフォルトの名無しさん
NGNGだったらSendだろうがPostだろうが自動変数は使えないだろ。
006564
NGNGわすれてください
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNGSetPixel() で、HDC に埋めていますが、色が元のとは違います。
元のは、暗い褐色なのに、青黒いのです。HDC の設定でなにか必要に思え
るのですが、なんでしょうか。BeginPaint() 以降なにもしていません。
0069デフォルトの名無しさん
NGNGリージョン使って SelectClipRgn してから BitBlt するのが普通
0070デフォルトの名無しさん
NGNGマイコンピュータ右クリック→システムのプロパティ→全般タブで
使用者: のところに出ている xxxxx-xxx-xxxxxxx-xxxx の文字列のことです.
0071デフォルトの名無しさん
NGNGHKEY_LOCAL_MACHINE の Software\Microsoft\Windows\CurrentVersion
0072デフォルトの名無しさん
NGNGthx!!
0073デフォルトの名無しさん
NGNG終端ヌルも含めオール2バイト(UTF-16?)でいいのですか?
WORD境界にそろえろと言われたもので調べています。
0074デフォルトの名無しさん
NGNGそうだと思います。
0075デフォルトの名無しさん
NGNG2バイト単位の符号であることは確かです。
最近はサロゲートペアをサポートしているようなので1文字=2バイトとは限りませんが。
007673
NGNGWORD単位ならOKなので。ども
0077デフォルトの名無しさん
NGNGPostQuitMessage or PostMessage(WM_APP)を行っても大丈夫でしょうか。
メッセージループ外でそれらを行い、メッセージループに入った時、
待ち状態にならないように、すぐにメッセージ処理を行いたいのですが。
0078デフォルトの名無しさん
NGNG大丈夫だったと思う。
0080デフォルトの名無しさん
NGNGむしろメッセージループ内で行ってるのを見たことないけど
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNGメッセージの説明をMSDNで確認すれ
0084デフォルトの名無しさん
NGNG調べてみます。ありがとうございました。
0085デフォルトの名無しさん
NGNGわや?
0086デフォルトの名無しさん
NGNG返ってくる文字列はワイド文字列なんでしょうか?
MSDNにはpidlの先頭からのオフセットとしか書いてないし、
STRRET_OFFSETを返す例を見つけられないので調査も出来ないです。
0087デフォルトの名無しさん
NGNGぐぐった限りでは char* にキャストしている例ばかりがヒットした。
もしかして SHGetFileInfoA と SHGetFileInfoW で違うのかもしれない。
あいまいですまん。
0088デフォルトの名無しさん
NGNGについて実装したいと思っているのですが、実装方法分かる方
いらっしゃいますでしょうか?
通常通りハッシュ生成を行い、RFCに記述されている
H(K XOR opad, H(K XOR ipad, text))
の通り計算を実装すると正しく出力されたのですが
APIヘッダとか見ているとHMAC_INFO構造体とか色々用意されていて
自分で実装しなくても算出してくれそうなのですが使い方どうも
よくわかりません。
CryptCreateHashのhKeyに正しいKeyを渡せば上手くいきそうな
雰囲気なのですがそのhKeyが?(これであっているか不明ですが)
とりあえず困らないのですけど気になってしょうがない。
008987
NGNGヘッダ見たら
#define STRRET_OFFSET 0x0001 // Use STRRET.uOffset to Ansi
って書いてあった。orz
なら ANSI 文字列でいいのだろう。
0091デフォルトの名無しさん
NGNGありがとうございます。
まさかMSDNに書いてない事がヘッダに書いてあるとは。
大変参考になりました。
0092デフォルトの名無しさん
NGNGなんか使っててもっと長いようなんですが。。。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG最低でも1ミリ秒は、他のプロセスやスレッドにCPU処理を譲るという意味で、
ちゃんと役に立っているよ。
糞OSなのもわかるけど、正しい使い方をしないで糞というのもどうかと。
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGちなみにLinuxのリアルタイム処理はもっと使えない。
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG最近ハードウエアについて学んだ学生さんですか?
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG出来るだけ正確に測定したい場合は、QueryPerformanceを使う
0107デフォルトの名無しさん
NGNGQueryPerformanceCounterって
一部の古いPentiumProマザーボードで正常な値を取得できないとか
一部のマルチプロセッサ環境で異常な値を返す場合があるとか
SpeedStepやCnQなどのクロック変化で正確な時間が測れない場合があるとか
噂やネットで聞くがどうなんだろう
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGやねうらお氏のWebページか、書籍に詳しく書かれてる。
ちゃんとまとめてあるし、実験&考察までしているのはここだけじゃないか?
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGMINMAXINFOのデフォルト値を調べることってできますか?
ウィンドウプロシージャの中でやるのはナシ
0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNGアリガトゴザマス
でも、lParamには一体何を渡せば・・・。
0114デフォルトの名無しさん
NGNG(2chブラウザで >>番号 にマウスを移動させると出現するポップアップのようなもの)
を作りたいのですが、これはWIN32APIの周りをいじると実現できるのでしょうか?
以下、試しにrubyで書いてみたのですが、こんな大げさなウィンドウを作る必要がなくて、
テキスト情報をもっとシンプルにポップアップしたいのですが…
require 'Win32API'
msgbox = Win32API.new('user32', 'MessageBox', 'LPPI', 'I')
msgbox.call(0, 'Message Box', 'test', 0)
ご存じのかた、情報のポインタだけでも教えていただけないでしょうか。
0115デフォルトの名無しさん
NGNG2chブラウザのポップアップウインドウは普通ToolTipをつかっているはず
0116デフォルトの名無しさん
NGNG特定のフォルダ(タスク等)でIShellFolder2の取得に失敗します。
タスクの場合は、IShellDetailsの生成に成功するのですが他のフォルダの場合は
IShellDetailsに失敗してIShellFolder2で成功するようです。
IShellFolder2生成
if (失敗)
IShellDetails生成
if (失敗)
エラーか、独自処理
って感じで良いんでしょうか?
>For Windows 2000 and later systems, IShellDetails is superseded by IShellFolder2.
を見るとObsoleteな扱いになってるように見えるのですが。
0117デフォルトの名無しさん
NGNG自分のウィンドウにWM_GETMINMAXINFOが来たときのlParamには何が入ってる?
0118デフォルトの名無しさん
NGNGというよりも、どちらかと言うと、
その値を調べたいのです
やっぱりWM_GETMINMAXINFOに張りついてないと
いけないんでしょうかね・・・
0119デフォルトの名無しさん
NGNGlParamにそのアドレスを渡せっていう話だろ。
0120114
NGNGありがとうございます。試しに以下のコードでTooltipを表示してみたのですが、
require 'vr/vrcontrol': require 'vr/vrtooltip'
class Form4ToolTip < VRForm
include VRDrawable
AREA = [0,0,110,110]
def construct
self.caption = "tooltip"; self.move 10,10,110,110
tt = createTooltip; tt.addToolArea AREA,"てすと"
end
end
VRLocalScreen.start(Form4ToolTip)
できれば、元になるウィンドウ無しにツールチップだけ表示することはできないでしょうか。
たとえばIEのテキスト入力画面でカーソルの位置に突如ポップアップを出すとか。
babylonとかドクターマウスとか、翻訳系のアプリケーションの場合には、
元になるウィンドウ関係なしにポップアップ表示が実現されているのですが、
あーいうのはどうやってプログラムを組めばよいのでしょうか…ご存じの方教えてくださいm(__)m
0121デフォルトの名無しさん
NGNG初期化なしでいいんですか?
0122デフォルトの名無しさん
NGNGWindows 2K 以降のシステムに対しては、IShellDetails は IShellFolder2 で置き換えられました、
みたいな意味だから例えば Win98 や NT の頃に出た Shell Namespace Extension の中には、
IShellDetails しか実装していないものもある。
0123デフォルトの名無しさん
NGNGありましたら、URLを教えてください。
通常は、マジックナンバーは使わないのですが、
メッセージ処理の研究をしていて、来たメッセージのmsg.messageを
ウィンドウなどに表示したとき、どのWM_*か知りたいのです。
0124デフォルトの名無しさん
NGNGWinUser.h見たほうが早いと思うが…。
0125デフォルトの名無しさん
NGNGなるほど。ありがとうございました。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGDS_SYSMODALはどこかのウィンドウの「子」として作らなければ関数失敗しますか?
自分は失敗するのですが。。
0128デフォルトの名無しさん
NGNGそのウィンドウの親ウィンドウとして、
GetDesktopWindowで得たウィンドウハンドルを指定するべきなのでしょうか?
それとも、NULLを指定するべきでしょうか?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNGどっちでもいい。
0132デフォルトの名無しさん
NGNG調べてみると、WM_NCLBUTTONDOWNが出ているみたいなのですが、
それはバーとか非クライアント領域で共通のものなので、
他に出ていると思うのですが、分かりませんでした。
WM_CLOSEは、コールバックの方では出ているようなのですが、
GetMessageからは、出ていないようです。
0133デフォルトの名無しさん
NGNGそれぞれ値が全く違うので気になりました。
NULLを指定した場合には、
一体何を親ウィンドウとしているのでしょうか?
NULLは標準的なやり方ではないのですか?
0134デフォルトの名無しさん
NGNGSpy++でみると、どっちで作ってもオーナーウインドウは(なし)になる。
0135134
NGNG0136デフォルトの名無しさん
NGNGGetMessageからメッセージが出てくる順番は先入れ先出しのキューだから、
即座に反応してほしいメッセージは直接ウィンドウプロシージャへ送られる。
0137デフォルトの名無しさん
NGNG子プロセスが先に終了しても全く問題はないということですか?
0138デフォルトの名無しさん
NGNGアレコレあるけど最終的(の1っ歩前)は、WM_SYSCOMMAND で SC_CLOSE が来てると思うよ。
普通のウィンドウなら。
0140デフォルトの名無しさん
NGNGとりあえず思いつくのは、コンテキストメニューを取得して、verbに"cut"や"paste"を指定することなのですが
もっと一般的な方法ってないでしょうか?
SHFileOperationみたいな物が用意されていそうな雰囲気があるのですが。
0141デフォルトの名無しさん
NGNGそう。子プロセスが終了するまで親は停止するようなプログラムも作れるし、親が終了しても子はそのまま残るし。
0142デフォルトの名無しさん
NGNGゾンビらないのですか?
優秀なOSですね。
0143デフォルトの名無しさん
NGNG取得されていないプロセスのことじゃなかったっけ?
なんか大きな勘違いしてるカキコを2chでよく見かけるけど。
0144デフォルトの名無しさん
NGNG例えば場所によって一般的なアローであったり手の形であったり、エディットボックスのときも変わりますよね。
そこでなのですが、自分以外のプログラムによって変わったカーソルの形が画面に表示されるときに
何になっているのかということを取得することってできませんか?
また、カーソルの形の画像自体を取得できなくてもある位置からある違った位置にカーソルを動かした時に
そのカーソルの画像が変わったかいなかを取得できるだけでもかまいません。
画像判定以外でどうにかならないかと考えております。
お知恵を貸していただける方がいらっしゃいましたらお願いします。
0145デフォルトの名無しさん
NGNGの戻り値を保存して
次判定するときに参考にするんじゃだめ?
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNGマウスカーソルが行った事を知るにはどうすればいいんでしょう?
WM_MOUSEMOVEだと、どういう条件だかわからんけど
がしがし飛んできてるみたいで。。。
WM_MOUSEMOVEでどうにかするものなのかな?
0148デフォルトの名無しさん
NGNGはぁ?NOTIFYICONDATA.uCallbackMessage
0149147
NGNG言葉足らずですまん
uCallbackMessageで受け取った時のことねん
今もぐぐってるけど、WM_LBUTTONDOWNとかの
クリック系しか無くて、困ってるんです
0150デフォルトの名無しさん
NGNG記憶しておいて、タイマーでマウスの座標(p2)を定期的にチェック
してp1==p2ならアイコン上、違ったらアイコン外とみなすのはどうかね?
試してないけど。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGIShellLinkみたいなやつがあった筈。
0154デフォルトの名無しさん
NGNGC++Builder5で
::MessageBeep(MB_OK)
とかやっても音が出ないんです
普段操作してる時は音出ます
VSは持ってないのでテストできないんですが
こういう症状出た事ある人いますか?
0155デフォルトの名無しさん
NGNG出てなければ環境の問題。
他のが出てておまいのが出ないなんてのはまずあり得ないはず。
0156154
NGNG・・・C++Builderで作ってるソフトからだとダイアログの時音が出ない!
なんだこりゃ・・・?
C++ Builder の環境疑うべきかな?
0157154
NGNGTweakUIでサウンド殺してました
すんません、ゆるして・゚゚(´□`。)°゚。ワーン
0158デフォルトの名無しさん
NGNGSpy++で見るメッセージのネスとレベルがとんでもない勢いで増えていくんですがこんなモンですか?
エクスプローラのネストレベルもどんどん増えていくみたいなのですが。
0159デフォルトの名無しさん
NGNGオーナーウィンドウがNULLでもモーダルにする方法はないでしょうか?
0160デフォルトの名無しさん
NGNGどういう理由でモーダルでないと判断したんだ?
0161デフォルトの名無しさん
NGNGアプリから呼ばれるDLLを開発しており、アプリからDLLを呼んでダイアログを
開いたところ、呼び出し側アプリのウィンドウが操作できてしまう。。。
0162デフォルトの名無しさん
NGNGMAKEINTRESOURCE(IDD_ReaderSelectDlg),
0,
DialogProcEntry,
(LPARAM)this);
…3番目が0じゃだめなの???
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG自分(ダイアログ)を開いた親、もしくは
アプリのTopLevelウィンドウがわかればいいのだけれど…
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG最初から設計のやり直し。
はい次の方どうぞ。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG最初からEnumThreadWindowsでもいいかも。
0171デフォルトの名無しさん
NGNG同意
0172デフォルトの名無しさん
NGNGじゃあ何故オマイラはここにいるのですか?
0173デフォルトの名無しさん
NGNG役に立たない人間だからです
0174デフォルトの名無しさん
NGNGシステムモーダルにすれば操作できないよ
0175sage
NGNGBから見たAをオーナーウィンドウ、、というんですよね。違ってるでしょうか。
GetWindowでGW_OWNERを指定した場合は必要なAのハンドルが得られるのですがGetParentを使用した場合に関数が失敗します。
(GetParent)
「指定したウィンドウがトップレベルウィンドウの場合は、オーナーウィンドウのハンドルが返ります。指定したウィンドウが
トップレベルのオーナーを持たないウィンドウだった場合、および関数が失敗した場合は NULL が返ります。」
GetParentでオーナーを取得できているのにGetParentでオーナーが存在していないという事になっている(?)のは何故なのでしょうか。
間違い指摘してくださいお願いします。
0176デフォルトの名無しさん
NGNGとりあえずGetLastError()してみては
0177671
NGNG0178デフォルトの名無しさん
NGNGウィンドウの親子関係くらいはシンプルでハッキリと作ったらいいのに。
0179デフォルトの名無しさん
NGNGGetParent() はオーナーを返さないのも名前からいって妥当だと思うけどね。
0180デフォルトの名無しさん
NGNG当然とか言い切っちゃってるし。
>The GetParent function retrieves a handle to the specified window's parent or owner.
>指定された子ウィンドウの親ウィンドウまたはオーナーウィンドウのハンドルを返します。
0181デフォルトの名無しさん
NGNG当然とは言ってないわけだが
0182175
NGNG>>176さん
使った事がない関数なので調べて見ます。
今時間がないので試せませんが、夜試してみようと思います。
>>177さん
あ、MSDNの文書自体が間違っているということですか??
考えもしませんでした。そういえば日本語のMSDNは誤植が多いって誰かが・・。
英語も勉強しなくては
>>178さん
僕も自分が親とオーナーのをちゃんと識別できているかどうかすらわかってない感じです。
子は親の領域内に表示されるウィンドウ、オーナーに所有されたウィンドウというのは
オーナーが閉じられたときに自身も閉じられてしまうようなウィンドウ、あとは上に書いたことをつけたしたような認識です。
>>179さん
やっぱりMSDNが誤植でGetParentはオーナーを返さないんですね。
自分も親子関係と所有関係の違いをよくわかっておりません。
「オーナーウィンドウ 親ウィンドウ 違い」でググって解説は見つけたのですが、
特にオーナーについて具体的に何を指しているのかわかりませんでした。
教えてください、お願いします。
ありがとうございました。
0183デフォルトの名無しさん
NGNG英語ですけど。
Win32 Window Hierarchy and Styles
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwui/html/msdn_styles32.asp
0184144
NGNG同じ値しか返してくれません一体どうすればいいんでしょうか・・・P_q
0185デフォルトの名無しさん
NGNGこれかな。
マイクロソフト サポート技術情報 - 230495
HOWTO:現在のカーソルのハンドルを入手します。
http://support.microsoft.com/?kbid=230495
0186デフォルトの名無しさん
NGNG最終手段だけど、APIフックでSetCursor()をフックしちゃえば?
0187デフォルトの名無しさん
NGNGどうやったら入手できますか?
MSDN以外にも、betaplaceから入手できるとCマガジンに書いて
あったのですが、Guest IDを聞かれるだけで、メールなども来ていません。
0188175
NGNGあれ。
>The GetParent function retrieves a handle to the specified window's parent or owner.
>指定された子ウィンドウの親ウィンドウまたはオーナーウィンドウのハンドルを返します。
MSDNの内容は誤植じゃないって事でしょうか?
GetLastErrorをGetParentの直後に使ってみました。関数はハンドルを返しませんが(関数失敗?)
LastErrorの戻り値をデバッグモードで調べると0になっていました。
0のエラーコードは「正常に終了している」とどこかの掲示板のログにありましたし
MSDNのFormatMessageのサンプルコードをほぼ完全にコピペしてエラーメッセージを表示しましたが
やはり、「操作を正しく完了しています」的なメッセージでした。
ダラダラごめんなさい。GetParentはオーナーは返さないという結論でいいのでしょうか?
0189デフォルトの名無しさん
NGNGすくなくとも Windows95,2000 では、返しませんね。
古い Win32API のヘルプでは
The GetParent function retrieves the handle of the specified child window's parent window.
となっていて、オーナーのハンドルを取得できるとは書いていない。いつからか、取得できる
という事になっているが、自分は成功したことはありません。
GetWindow() か、WS_CHILD スタイルが無いことを確認してから GetWindowsLong() では
取得できますね。
0190デフォルトの名無しさん
NGNGこのファイルまたはディレクトリを暗号化するよう指示します。
とありますけど、実際にはどうなるんですかね?このフラグでファイルに数値入れたりしても
特に何も変わってないようにみえるんですけど
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG調べてないけど、FATとNTFSでは挙動が違うんでないかい?
FATでそんなめんどくさいことサポートしてないでしょ。
0193デフォルトの名無しさん
NGNGたとえばVCLのTThreadクラスでは、Suspendedプロパティを設定してから
実際にサスペンドさせるので、スレッド自身がサスペンドする場合には
このプロパティは厳密にはあてにはならないと思います。
スレッドハンドルは終了しないとシグナル状態にならないようだし、
何か方法はないものでしょうか。
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGVCLって何?
というか、サスペンド状態ってあんまり使わんと思うんだが
(通常はイベント待ちになってるっしょ)
汎用の何かを作るの?
0196デフォルトの名無しさん
NGNG193じゃないけど、VCL = Visual Component Library の略で
Delphi、C++Builder で使われてるクラスライブラリ
0197デフォルトの名無しさん
NGNGWaitForSingleObject
0198デフォルトの名無しさん
NGNGSuspendThreadして戻り値見るとか?
0199193
NGNGVCL知らんっすか。まァそうかもしれませぬな。
>>196さん、さんくすっす。
あんまりスレッドを作ったり終了したりすると原因不明のメモリリークがあるとか
聞くし(真偽は不明)、どうせ必要なスレッドならサスペンドで待機させといて
必要なデータを設定→Resumeの方が効率いいかなー、とオモテそんな仕組みを
考えております。
>>197
なんのハンドルを?サスペンドでもシグナル状態になるの?
>>198
考えましたけど、一瞬でもスレッドの動作を阻害するのでやだなあと。
でも一応案のひとつです。
0200デフォルトの名無しさん
NGNGファイルを暗号化するには専用のAPIを使う必要がある
暗号化属性ビットを直接いじっても駄目
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG待機させるならCreateEventのハンドルとかでイベント待ちする方が賢いと思うけど。
SuspendThreadはワーカスレッド側の都合に関係なく止まるから普通は使わないよ。
0203デフォルトの名無しさん
NGNG複数のアイコンを1つのファイルにまとめるためにdllを作るというのはありですか?
試してみたところ、dllはソースファイルに何も書かなくてもビルドできるようなので
正直驚いているところです。
正しいアイコン書庫ファイルの作り方は何なのでしょうか?
0204デフォルトの名無しさん
NGNGWinAPIで取り出せるからdllでいいと思うけど。
0205デフォルトの名無しさん
NGNGttp://www.venus.dti.ne.jp/~mueji/tips/tips07.htm
0206デフォルトの名無しさん
NGNG情報有難うございました。
リンクページによると、dllはある種のアイコン書庫ファイル扱いされてるみたいですね。
.iclファイルという専用のフォーマットがあることは全く知りませんでした。
勉強になりました、サンクスです。ノシ
ちなみに自分がVC6SP4で生成したソースなしdllでのサイズについて触れますと、
2,238[Byte] × 219個 を組み込んだ状態で、557,056Byteのdllファイルとなったので、
オーバーヘッドは、557,056-490,122 = 66,934[Byte]でした。
0207デフォルトの名無しさん
NGNGアイコンしか入っていないDLLを、それとわかるように拡張子変えてるだけ。
0208デフォルトの名無しさん
NGNG垂直スクロールバーが一番下に来ているかどうか知りたいのですが以下のようなコードで問題ないのでしょうか?
nPos+nPageがnMaxより1大きいのが気になるのですが‥‥
::SCROLLINFO si;
si.cbSize = sizeof(si);
si.fMask = SIF_ALL; //SIF_POS | SIF_RANGE;
::GetScrollInfo(hWnd, SB_VERT, &si);
if ((si.nPos + si.nPage - 1) == si.nMax)
//要スクロール
else
//スクロール不要
0209デフォルトの名無しさん
NGNGリンカの/NOENTRYでもう少しサイズは小さくならないか?
0210デフォルトの名無しさん
NGNG監視したいんだが,
FindFirstChangeNotification
を使えば,それが起きたことを教えてくれるが,
なんていうファイルのどうしたのか(コピー? 移動? 削除?)は
これじゃわからん.
これを知る方法ない?
0211デフォルトの名無しさん
NGNGNTならそういうAPIが使えるが、そうでないなら自分でリストアップするしかない。
と記憶してる。
0212210
NGNGどうやんの?
0213デフォルトの名無しさん
NGNG変更前にファイルリストを作っておいて変更後と比較する
0214デフォルトの名無しさん
NGNG常駐して,アクション(ファイル操作)が起こりしだい
リアルタイムで知りたいんだけど,
その方法じゃ無理やんけ
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG0217210
NGNG1つのドライブぜんぶ監視したいんだが,
そんなことやってられっか
いくらメモリくうかわからんし,
CPU もおおいそがしだよ
0218デフォルトの名無しさん
NGNG0219210
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNG圧縮・暗号化されてる実効ファイルとかだとちょっと面倒。
0223デフォルトの名無しさん
NGNGNT系でいいんなら ReadDirectoryChangesW を非同期で使えば?
0224デフォルトの名無しさん
NGNG「1つのドライブぜんぶ」とかいきなり前提条件変えるし
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGしょせんここのレベルはこの程度だよ
0227210
NGNG0228210
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGプッ
0231193
NGNGもちろん、ワーカスレッドの都合を無視して無理やりサスペンドさせるような
作りにはしていません。
おっしゃるとおりに今までイベントオブジェクトで連携を取っていたんですが、
ワーカスレッドが自発的に停止する場合に問題だったのです。
スレ違い気味になるので詳しくは書きませんが、別のアプローチで解決しそうです。
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNGSHChangeNotifyRegisterはアテにならない。
0236デフォルトの名無しさん
NGNGそれは当然。ソフトウェア的に実現しているに過ぎないからね。
SHChangeNotify() をちゃんと呼んでくれるプログラムしか対応できない。
エクスプローラでの操作が反映される程度だろう。
9x でリアルタイムに反映させようと思ったら、ドライバ書くしかないんじゃないか?
0237デフォルトの名無しさん
NGNGみてくれが悪くなります。
MFCのCSplitterWndと同様の効果を得られるようにするにはどのように
すればよろしいのでしょうか?
0238デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGこちらで質問します。
MCIで動画を再生するプログラムを作っているのですが
MCIWndCreateでWS_CHILDを指定して再生させています。
ですがこのままだと再描画がされません。
親のウィンドウにはWM_PAINTが来るのですが、
どのように再描画させれば良いかが不明です。
どなたかご存知ないですか?
0241デフォルトの名無しさん
NGNGInvalidateRect
0242デフォルトの名無しさん
NGNGほぼ同時刻にクライアント側から書き込もうとすると1つはタイムアウトでエラーになります。
サーバー側でのインスタンスの数は1つでも制限なしでも変わらす。
同時刻に接続に行って両方とも読むいい方法は無いですか?
0243デフォルトの名無しさん
NGNGHKEY_CURRENT_USER\SOFTWARE\Microsoft\sample (仮)に
名前 Height 値 200
という感じで記録したいんです。
0244デフォルトの名無しさん
NGNG自分で調べてみてそれが分からない程度ならばプログラムをやめろ
0245デフォルトの名無しさん
NGNGRegSetValueEx
これでわからなければ残念だが 244 の言うとおり
0246デフォルトの名無しさん
NGNG一つ一つの縦幅の値をどのようにして決定したらよいかわかりません。
WM_CTLCOLORBTNでデバイスコンテキストを受け取れば、
GetTextMetricsで文字の高さを得て近い事はできるかなあと思いましたが
もっと綺麗な方法があるかなと思って質問させていただきました。
よろしくおねがいします。
0247デフォルトの名無しさん
NGNGスクリーン関係のHDCを取得して、使用するフォントで高さを一回求めればいい。
GetDC(0) でもいいんじゃないの、たぶん。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG抽出したいのですが、何かいい方法はないでしょうか?
【現在のロジック】
DIBに文字を描画 → 輪郭だけのビットマップ画像(袋文字状態)を作成 →
ビットマップの輪郭を一筆書き線の情報に変換
一筆書き線の情報をLineTo,MoveTo描画すると元の文字の輪郭らしきものにはなるが
美しくない。
TrueTypeフォントデータから直接LineTo,MoveTo座標を抽出する方法があればベストです。
どなたか知ってらっしゃる方がいればよろしくお願いいたします。
0251デフォルトの名無しさん
NGNG曲線データだけどね。
0252デフォルトの名無しさん
NGNGベジェ曲線かBスプライン曲線について学んだ後の
方がいいと思うよ
0253デフォルトの名無しさん
NGNGメモリマップドファイルを使っています。
この時、メモリへの書き込みに応じて
自動的にファイルサイズを拡張するにはどうしたらいいでしょうか。
試しにCreateFileMappingにmaximumSizeを与えてみたところ、
メモリにアクセスしなくてもmaximumSizeのサイズでファイルが作成されるようです。
OSがページフォルトを検出して勝手に拡張してくれると非常に楽なのですが、
不可能であれば代替策を教えていただけると助かります。
0254デフォルトの名無しさん
NGNG不可能です。代替策もありません。
一度マッピングを破棄して、再度マップしなおす他に方法はありません。
実装方針を見直すしかないと思います。
0255デフォルトの名無しさん
NGNGということは、自分でキャパシティを設けて、アクセスの度にチェック、
キャパシティを超えていたらコミット、というコードを書くのと大差ないわけですね。
あ、でも基本的に読み書きがランダムだから、
必要な部分だけファイルから読み出したり書き出したりするよりかは
再マップした方がいいのかもしれません。
やりたい事はバーチャルなファイルシステムに類するような事なのですが。
0256デフォルトの名無しさん
NGNGclass CFileMap : {
public:
void* Map(fpos_t start, size_t length);
void* MapNext(size_t length);
};
みたいなクラスで適当に大き目のサイズだけマップしつつ必要に応じて再マップってのが
良いような気がします。ReadしてWriteするよりかは性能でると思う。
扱うデータが動画等の巨大なものでなければ、処理中はすべてオンメモリで処理するコードでも
良いような気もしますけど、それではまずそうですか?
0257253=255
NGNGにゃるほど。
> 処理中はすべてオンメモリ
それはマッピングせずにということですか?
それだと初回の読み出しに全て読み出さなきゃいけないので無駄が多いと思うのですが、
イマイチ理解出来ていなそうなので解説お願いします。
0258デフォルトの名無しさん
NGNGファイルサイズ分のメモリを、とりあえず
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/creating_guard_pages.asp
で説明されているような Guard Page で割り当てておいて、初回アクセス時に実際にファイルから読み込む、
というようなノリです。
でもメモリ領域とファイルとの関連を管理しなきゃいけないので、あまり面白くないですね。
トリッキーだし。
0259253
NGNGGuard Pageって面白いですね。
フォルト検出に近い事が自分で出来るのか。
でも毎回テストしなくてはいけないという点でやはり不便ですね。
かといって、毎回再マップしてると開放の度に強制的なコミットで重たそうな気もします。
テストしてみないとなんとも言えませんが。
0260デフォルトの名無しさん
NGNGShellってIShellFolderとかね。
0261デフォルトの名無しさん
NGNG毎回テストする必要はないんでない?
ガードページを読み書きすると、SEH が投げられるので、SEH のハンド
ラでガードを解除してファイルをロードして、SEHが投げられたところ
から実行を続行すればいいような。
0262デフォルトの名無しさん
NGNGポインタを動かせる装置が誤動作をするらしくて、勝手にマウスポインタが動いたり、
クリックされたりするらしいのです。
それでどうにかしろと言われたのでマウスのクリック(できれば移動も)を封じることに
しようと思うのですが、この場合はSetWindowsHookExを使うという方向でよいでしょうか?
0263デフォルトの名無しさん
NGNG素直にタッチパッドの禁止をして置け。
・メーカのサポートデスク
・取り説
・オンラインヘルプ
のどれかでそのやり方がわかるだろ。
0264デフォルトの名無しさん
NGNGさっきまで練習にちょうどいいやって思ってやってましたが、技量が足りないような
気がしてきました。やっぱそちらの手段をとるべきですね。
ただ、そのノートはPentiumの233とかいう古いもので、しかも一月くらいに知り合いから
三万か五万で買ったものらしいです。
とりあえず明日にでもサポートに電話してみようと思います。
板違いになりますのでここらで失礼します。レスありがとうございました。
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGCreateToolhelp23Snapshot(TH32CS_SNAPMODULE,PID)
にいったきり、戻ってこない場合があるのですが
回避方法とかないでしょうか?
0267デフォルトの名無しさん
NGNGっていうボケはともかく Win2k なら PSAPI を使った方がいいよ
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0271266
NGNGPSAPI使うしかないんですかね?
kernelに実装されているので、動かないことがあるのが
なんとなく悔しくて質問してしまいました。
ありがとうございました。>>267
0272デフォルトの名無しさん
NGNGディスプレイのDCなら、どのウィンドウで取得したものでも
フォントの高さは同じなんですね。わかりました。ありがとうございました。
レス遅れてすいません。
0273246
NGNG今試してみたのですが、サイズを文字の高さであるして並べると
押してみるとわかるのですが微妙に重なってました。
このコントロールをきちんと丁度表示でき、それでいて余らないサイズを
知る方法はありますか?おしえてくださいお願いします。
0274デフォルトの名無しさん
NGNGボックス部分やテキスト部分をどのくらいの大きさで描画するかは
チェックボックスの勝手だろうから決められないんじゃない?
将来のOSでまたデザインが変わるかもしれないよ。
もしも使う環境を限定していいんだったら、
フォントの高さにどれくらい加えればちょうどいいかを
実際に測って決め打ちしちゃえば?
0275246
NGNGそうなるとフォントの高さにこれくらいなら大丈夫だろうという
値を加えて作るくらいしかないのですかね
どうもありがとうございました
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGスクリーン座標系に変換するには、適切なフォントが設定されたウィンドウでMapDialogRectを使う。
でよかったと思うけど。
ちなみに1行分の EDIT は 12 Dialog Units。
0281デフォルトの名無しさん
NGNGそういったコントロールメトリクスの一覧とかって
どこかにまとめられていますか?
0282デフォルトの名無しさん
NGNGそれってGetDialogBaseUnitsが元になってない?←MSDNにはそこまで書いていない
全く高さが合わないんすけど。
俺の指定したDLGTEMPLATEの中身がおかしいのかな?
一応指定したフォントでSET_FONTが各コントロールに送られているのだけれども。
0283282
NGNG忘れてくださいぃぃぃ
0284デフォルトの名無しさん
NGNG俺がユーザーだったら文句言うけどw
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGSetWindowRegion()
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG否、ChangeServiceConfig2
0289288
NGNG0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGマイクロソフトに訊け
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG( ´_ゝ`)ウフーン
0295デフォルトの名無しさん
NGNG送られたスレッドが送り元スレッドでEnterされたクリティカルセクションの開放を待っていて
両スレッドだんまりになってしまいました。
PostMessageなら大丈夫ということで、
送りたかったメッセージWM_SETTEXTをpostしたのですがどうやら無視されてしまいます。
WM_SETTEXTはpostできないのでしょうか?
0296デフォルトの名無しさん
NGNGMSDNでPostMessageの説明嫁。
> 非同期メッセージ関数(PostMessage、SendNotifyMessage、
> SendMessageCallback の各関数)を使って、WM_USER 未満の
> メッセージ(メッセージの値が 0x8000 未満)を送信する場合は、
> メッセージのパラメータでポインタを使うことはできません。
無視される理由がここにあるのかは別の問題だけど。
0297デフォルトの名無しさん
NGNGある時刻に自動復帰するようににはどのようにすればいいのでしょうか?
0298デフォルトの名無しさん
NGNGメッセージループは止めないようにしてSendMessageに変えました
0299デフォルトの名無しさん
NGNGタスクをスケジュールする
0300デフォルトの名無しさん
NGNG変な説明だな
動的に割り当てたメモリへのポインタも渡せない、と聞こえる
0301デフォルトの名無しさん
NGNGもしかしてWM_NOTIFYって、SendNotifyMessageでしか送っちゃいけない?
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNGつまりSendMessageとPostMessageの中間ってことかしら。
0304デフォルトの名無しさん
NGNGそんな感じだわな
0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNGWTLのソースなり、猫 ttp://www.kumei.jp/c_lang/sdk4/sdk_311.htm なりを参考に。
基本的に面倒くさい。
0309デフォルトの名無しさん
NGNGありがとうございます。
「猫でも〜」に紹介されていたんですか、気が付きませんでした。
>>306
痛い所を突いてきますね・・・
ちょっとした画像処理ツールを作ろうと思ってWin32APIをいじくってるんですが、
ウィンドウのデザインばかりが気になってちっとも本題に入ることができません。
IEがこんなデザインにしたから気になるんですよ。
IEのバカッ!(><)
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGttp://up.isp.2ch.net/up/0672f2c6c31e.zip
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNG神
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG構造を分りやすい形で表示してくれるツールとかありますか?
MS純正のものでもなくてもいいです。フリーのツールでも。
0316デフォルトの名無しさん
NGNG構造を分りやすい形で
解説してくれたら作りますよ。
0317デフォルトの名無しさん
NGNG>link /dump /all hello.obj
これで見れました。
0318デフォルトの名無しさん
NGNGGetDialogBaseUnit は、ウィンドウやフォント等指定する引数もなく常にシステムフォントの
メトリクスをもとにした値を返します。んで使い物にならない。MapDialogRectがお勧め。
もう解決したみたいだけど、読んでる人向けに補足ですた。
0319デフォルトの名無しさん
NGNGちょっとした物作るんでGUIはちまちまいじりたいんならVBやDelphiみたいな
RADツール使うといいんじゃないか?すくなくともDelphiならマウスでぽちぽち
配置していくつかプロパティいじればできたと思う。
全部RADでやってもいいし、コアはC++でやってもいい。
0320デフォルトの名無しさん
NGNGCDialogの継承クラスにおいて
ワーカスレッドからメインスレッドに15msecおきに
SendNotifyでユーザ定義メッセージを送って
関数を実行させようとしています
しかし、どうしてもランダムに
200msec前後の遅延が発生します
どうにか15msecぐらい間隔で目的の関数を
呼び出すことはできないでしょうか?
どうか、アドバイスをよろしくお願いします
0321デフォルトの名無しさん
NGNGtimeSetEvent() でもつかったら?
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG方法ってどうしたらいいのでしょう?
モードレスにしたプロパティシートのハンドルを引数にして
DestroyWindowでおこなうとWindows APIバイブル2のサンプルCD
(CHAPTER4のGETTABCT.MAK)ではなっているのですが、VC.NET2002
でおこなうと、終了処理の後にハングしてしまいます。
宜しくお願いします。
0324デフォルトの名無しさん
NGNG全ドライブのファイル操作の監視をしたい.
CreateFile で監視するディレクトリィのハンドルをとって,
わたしてやるんだが,例えば,cドライブを見たければ,
"c:\\" とか指定すればいいんだが,
全ドライブを指定することはできないだろうか?
GetLogicalDriveStrings で生きてるドライブ名をとって,
個別にそれぞれ CreateFile で開いて,
ReadDirectoryChangesW で監視するってのは
あほらしくてやってられない.
一発でできないだろうか?
0325デフォルトの名無しさん
NGNGアドバイスお願いします。
0326デフォルトの名無しさん
NGNG盲目的に全ドライブ監視は危険。メディアの入れ替えで恐ろしいことが起こる。
やるなら個別でやるべき。
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG漏れの6連装CDドライブをガチャガチャ言わすのはオマエか!
0329デフォルトの名無しさん
NGNGウィンドウを列挙して、ウィンドウが最大化しているかどうか調べれば良いかと
0330デフォルトの名無しさん
NGNG列挙と言うとEnumWindowとかですか?
具体的なキーワードを頂けるとありがたいです。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNGvoid replace(char* text,char* key,char* rep)
{
char *p,buf[256];
p = strstr(text,key);
while(p!=NULL){
*p='\0';
strcpy(buf,p+strlen(key));
strcat(text,rep);
strcat(text,buf);
p = strstr(p+strlen(rep),key);
}
}
[使い方]
replace(buf,"ア","ア");
replace(buf,"イ","イ");
replace(buf,"ウ","ウ");
replace(buf,"エ","エ");
replace(buf,"オ","オ");
replace(buf,"カ","カ");
replace(buf,"キ","キ");
replace(buf,"ク","ク");
replace(buf,"ケ","ケ");
replace(buf,"コ","コ");
replace(buf,"サ","サ");
0333デフォルトの名無しさん
NGNGLCMapString
0334デフォルトの名無しさん
NGNGさんくすくす。
0335デフォルトの名無しさん
NGNGIsZoomed
IsIconic
GetWindowPlacement
0336デフォルトの名無しさん
NGNGおおー、ありがとうございます
0337デフォルトの名無しさん
NGNGマルチメディアタイマを使ってみたのですが
10000回に1度くらいの割合で
イベント10回くらいをスルーしちゃって
コールバック関数内で呼び出してある関数が
実行されてないようです
どうしてでしょう?
コールバック関数内の処理を軽くしても
改善されませんでした
原因に心当たりのある方
是非アドバイスをよろしくお願いします
実行されていないようです
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNG必ずコールバックされると思っているのが間違い。
コールバック関数の中で前回呼ばれた時のシステム時間との時間差を計算して、
呼ばれなかった分の穴埋めを行う処理をしないといけない。
0341デフォルトの名無しさん
NGNGでしょうか?
0343デフォルトの名無しさん
NGNGWM_NCHITTEST と WM_NCCALCRECT と WM_NCPAINT と WM_NCACTIVE あたりを
自前で実装すれば可能。
0344デフォルトの名無しさん
NGNG1.コールバック関数から SendNotifyMessage を呼んでいる時、メインスレッドで
直前のメッセージ処理が終わるまで待っている状態。
メッセージを使わないようにする。
表示の更新だけなら InvalidateRect のみとか、
直接 dc 取得してワーカースレッドから描いてしまうとか。
2.GDI に対して描画要求を過剰に繰り返し行うと起こる現象。
描画部分を小さくしたり、DrawDibDraw とか DirectDraw を使えば良くなるかも。
0345デフォルトの名無しさん
NGNGコールバック関数内にグローバル変数の
イベント発生カウンタを持っているのですが
そのカウンタとコールバック関数内の
一部の関数が走った回数が一致しません
イベントカウンタの方が大きい値になります
従って、コールバック関数は呼ばれているのですが
その中の関数が走ってないように見えます
どうしてでしょうか?
0347デフォルトの名無しさん
NGNGファイルIOはそれなりに高速なので、ログでも書き出して動作を検証すべき。
あとコールバック処理中に再びコールバックが呼ばれるケースとかも考慮するべき。
0348デフォルトの名無しさん
NGNGありがとうございます
0349デフォルトの名無しさん
NGNGインストール先をiniファイルなどやオプションなどに記述して
変更する方法はないものでしょうか。
宜しくお願いいたします。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGWM_IME_COMPOSITION とかでどう?
0353デフォルトの名無しさん
NGNGこちらへどうぞ。
インストーラー相談室
http://pc5.2ch.net/test/read.cgi/tech/997727326/
0354デフォルトの名無しさん
NGNG"int __cdecl InitInstance(struct HINSTANCE__ *,int)"
(?InitInstance@@YAHPAUHINSTANCE__@@H@Z)
が関数 _WinMain@16 で参照されました。」
というエラーが出るのですが、何をリンクすればこのエラーがなくなるのでしょうか?
#includeしているのは
#include <windows.h>
#include <windowsx.h>
#include <winsock2.h>
#include <stdlib.h>
#include "resource.h"
なのですが、、、このエラーだけはどうすれば回避できるのか
わかる方がいましたら教えてください。
0355デフォルトの名無しさん
NGNGリンクするライブラリが足りないとか?
0356デフォルトの名無しさん
NGNG実際スレッドで動かす函数として
ある特定の型の函数への指示子をわたしてやるんだが,
この函数って大局じゃないとうまく動かない.
類の要員函数ではいけないの?
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG恐らくなにかのサンプルをコンパイルしようとしてるかどっかからのコピペ
コードなんだと思うけどInitInstanceは普通自分で定義するんじゃないか?
ソース全部見ないと正確にはわかりません。
>>356
クラスメンバなら大丈夫。そうじゃないときは暗黙のうちにthisがわたされる
から無理。4番目のパラメータにthisわたしてクラスメンバからメンバ関数を
呼び出せばいいと思う。
0359デフォルトの名無しさん
NGNGInitInstance というと AppWizard が自動生成するスケルトンに入っている関数か?
CreateThread に渡そうとして引数を変えたのにプロトタイプを直し忘れたとか、そーゆーオチか?
0360デフォルトの名無しさん
NGNGC:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\lib\MAPI.Lib
: fatal error LNK1136: ファイルが無効であるか、 または壊れています。
というエラーが出て結局ビルドできません。
0361デフォルトの名無しさん
NGNG単に、別のリンクエラーが出て、そこで止まっただけ
0362デフォルトの名無しさん
NGNG関係なさそうだな
そんなとこに InitInstance なんてねえもん
0363デフォルトの名無しさん
NGNGすでに起動しているWindwosMediaPlayerを
外部からメッセージを送って操作する方法はありますか?
具体的には、あるタイミングで、WMPですでに選択されている
ファイルの再生をスタートさせるだけです。
よろしくお願いします。
0364デフォルトの名無しさん
NGNGどうしたらいいんでしょうか?
とりあえずイベントログを定期的にチェックして検知とか考えました。
そんなめんどくさいことしないでもイベント通知してもらえたりするんでしょうか?
GINA使わないでやりたいです。
よろしくお願いします。
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG(ryaと書きたいだけの
と書きたいだけの
0367デフォルトの名無しさん
NGNGInitInstance は Windows API ではないので、中身は自分で書きましょう。
ウィンドウクラスの登録用に、習慣的にその名前を使っていただけ。
0368デフォルトの名無しさん
NGNGWM_COMMAND送りつければいいんじゃ?
0369デフォルトの名無しさん
NGNGMicrosoftR Windows Media? Player 7 SDK
Windows Media Player コントロール Version 6.4
ただし VBアプリから起動させる場合
0370デフォルトの名無しさん
NGNGint WNAPI WinMain(〜)
が書いてある行より手前に
int InitInstance(HINSTANCE, int);
と書いてみろ。
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG自分で作ってもいいのですが、標準で用意されているような気がしてなりません。
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG・DLLのロードに失敗する。
・hMyLibをstaticにしないと強制終了する。
・WM_PAINTメッセージが複数回ディスパッチされる。
元のソースコードは、構文的に間違っていないと思います。
対処法が全く分からず、困っています。どうすれば良いのでしょうか?
OSはWinXPHome、コンパイラはBCCを使用しています。
0375デフォルトの名無しさん
NGNGカラムの挿入でiColに好きな値を設定できないようなのです。
iOrderで順番も入れ替わるし、iColとサブアイテム番号の対応は自分で管理しないといけないのでしょうか?
0376デフォルトの名無しさん
NGNGもうちょっと詳細に教えてくれ。
>・DLLのロードに失敗する。
LoadLibraryの後でGetLastErrorを呼んでエラーコードを調べる。
>・hMyLibをstaticにしないと強制終了する。
できればどの行で強制終了するのかデバッガ(BCCじゃ無理か?)で調べる。
>・WM_PAINTメッセージが複数回ディスパッチされる。
これは多分仕様。(違うかも)
0377374
NGNGエラーコードを調べようとして、次のようにソースコードを書き換えたのですが、強制終了します。
case WM_PAINT:
hMyLib = LoadLibrary( "dll04.DLL");
wsprintf(str,"%d",GetLastError());
MessageBox(hWnd,str,"",MB_OK);
書き方に問題があれば、指摘して下さい。(^_^;)
0378デフォルトの名無しさん
NGNGDLLの方に問題があったりしないか?
0379374
NGNGコンパイルを繰り返す内に、メッセージボックスが表示されなくなり、強制終了するようになりました。
最初は、画面の右下の方に表示されていました。中央に表示されないのが変だと思っていたのですが...。
また、メッセージボックスが表示される時に鳴る警告音が立て続けに20回くらい鳴ります。
そのため、WM_PAINTメッセージが複数回ディスパッチされていると判断しました。
>>378 実行ファイルと同じ場所に置いてあるので、問題ないと思うのですが...。
0380デフォルトの名無しさん
NGNGWM_PAINTハンドラ→MessageBox→モーダルループ→無効領域がクリアされてない→WM_PAINT発生→WM_PAINTハンドラ→・・・
で無限ループに陥ってるかも。
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNGOuputDebugStringでも使っとけ
デバッグ情報が表示できないなら、テキトーにフリーソフト使うと吉
ttp://search.vector.co.jp/search?query=OutputDebugString
0383374
NGNG>>381
>>382
ありがとうございます。Turbo Debuggerをインストールしているのですが、使い方が分からないので困っていました。(^_^;)
紹介して頂いたデバッガを利用してみたいと思います。
0384382
NGNG勘違いされてるような気がしないでもないので、
補足しておくと、
OuputDebugStringは文字列をデバッグ出力に送るAPI
リンク先のは、OuputDebugStringの出力を表示するツール
ちゃんとしたデバッガを使ってるなら、
それの使い方を覚えた方がいいと思われ
0385374
NGNGいろいろ教えて頂きありがとうございます。Windowsプログラミングで簡単に文字列を出力する方法を知らなかったので、
仕方なくMessageBox関数を使用していました。OuputDebugString関数を使えば良いのですね。
>>379
無限ループになるのは当然ですね。つまらないミスでした。反省しています。(^_^;)
>>376
GetLastError関数の戻り値は0でした。やはり、DLLのロードに失敗しているようです。
0386374
NGNG> 無限ループになるのは当然ですね。つまらないミスでした。反省しています。(^_^;)
すみません、リンク先を間違えました。>>379ではなく>>380です。(^_^;)
0387デフォルトの名無しさん
NGNGループ離脱条件を戻り値IDOK以外にしていたとする。
DestoryWindow()が親に送られたら地獄。
応答不能・シャットダウン不能となる。
DestoryWindow()APIがダイアログをIDOKで閉じるからである。
戻り値でループ離脱をする場合、十分注意しよう。
0388デフォルトの名無しさん
NGNGwinerror.hを見れば分かるが、
GetLastErrorの戻り値が0ということは直前のAPIは成功している
http://msdn.microsoft.com/library/en-us/debug/base/system_error_codes__0-499_.asp
0389デフォルトの名無しさん
NGNG階層構造が複雑で、子孫ウインドウが多数存在するトップレベルウィンドウがあります。
ウィンドウを非アクティブからアクティブにしたときに、そのウィンドウが
非アクティブになる前に持っていたキーボードフォーカスの位置を元に戻したいのですが、
WM_ACTIVATE(WA_INACTIVE) が送られてくるタイミングで GetFocus() してフォーカスを保存しようとしても、
ウィンドウを最小化したときなどはすでにフォーカスが失われているらしく、うまくいきません。
現在はすべてのウィンドウプロシージャで子ウィンドウのフォーカスの移動を監視し、それを
親ウィンドウに次々と通知することで実現しているのですが、あまりスマートとはいえません。
もし、もっとウマーな方法があればご教示ください。
0390374
NGNGすみません、勘違いしていました。発言を撤回します。(^_^;)
>>384
OuputDebugString関数を使用してみたのですが、
"未定義の関数 'OuputDebugString' を呼び出した"
というエラーメッセージが表示されます。windows.hはインクルードしてあるのですが、
別のヘッダファイルをインクルードする必要があるのでしょうか?
0391デフォルトの名無しさん
NGNGwinbase.h
0392デフォルトの名無しさん
NGNG0393382
NGNG0394デフォルトの名無しさん
NGNGつーかこういう時ってまずタイポ疑えよ。
エラー起こるたびに訊いてるようじゃ進歩ねーぞ。
0396デフォルトの名無しさん
NGNG悪いことは言わん、これ入れとけ。
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/home.htm
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG右上の[×](クローズボタン)も有効なメッセージボックスって、
「MessageBox()系のAPIでは作れない」ってことでよろしいでしょうか…?
0399374
NGNGしかし、エラーコードは6(無効なハンドル)でした。環境に問題があるのでしょうか?
>>396
SDKをアップデートする必要があるのでしょうか?WinXPHomeSP1で作業しているのですが、
SP2に移行した方が良いのでしょうか?
0400デフォルトの名無しさん
NGNGhMyLibがNULLかどうかも判断せずに、GetLastErrorしてOutputDebugStringしてないか?
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG作れません。
Xで閉じてキャンセルなら「はい/いいえ/キャンセル」の形式にしないとユーザわけわかんなくなるし・・・
0403398
NGNGどうもありがとうございます。
> Xで閉じてキャンセルなら「はい/いいえ/キャンセル」の形式にしないとユーザわけわかんなくなるし・・・
確かにおっしゃる通りだと思います。
ただ、例えばデスクトップ上などでファイルを右クリック⇒削除を選ぶと、
>>398 のようなダイアログボックスが表示されるので、可能性がないわけではないかな…と思いまして。
0404374
NGNGhMyLibは、NULL(=0)ではなく、012B0000という値を持っていました。LoadLibraryは失敗していなかったようです。
しかし、エラーコードをチェックすると、その値が無効であると言われてしまいます。
0405397
NGNGほとんどの場合、関数が成功した場合、SetLastErrorされないので、
GetLastErrorしても意味ない。
つーか、GetProcAddressのTestFuncを_TestFuncに書き換えれば、うまくいくはず。
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGフックプロシージャの中で、目的のウィンドウにキー入力を送信したいです。
どういう風に目的のウィンドウのウィンドウハンドルを取得するのがスマート、
というか一般的なんでしょうか
0410ぬるぽ
NGNG0411デフォルトの名無しさん
NGNG目的のウィンドウが自分で作ってるウィンドウなら、共有メモリ領域にハンドルを書いておく。
そうでないなら、EnumWindow とかでゴリゴリ探すとか、Spy++ で手動で探したときと同じ
方法で探す。
0412デフォルトの名無しさん
NGNG目的のウィンドウのタイトルotウィンドウクラス名がわかってるならFindWindowも
0414デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGなんでスマートといえないんだ?
君のプログラムは親関数に次々と return することで実現するより
グローバル変数のほうがスマートといえるのか?
jmp_buf みたいに親ウインドウのハンドルを次々に渡しておいて
通知はそのハンドルで一挙にって手もあるが、俺は推奨しないなあ・・・
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGしっているとなにがどうなるんだ?
0419デフォルトの名無しさん
NGNGWNDCLASS::cbWndExtra
GWL_USERDATA
ポインタをキャスト
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG全然スマートじゃない気が
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG0425389
NGNG>>416
> なんでスマートといえないんだ?
すみません、「スマートといえない」という表現には語弊がありました。
ただ、取得のタイミングさえ合っていれば GetFocus() で一発で済むところを
わざわざ次々と橋渡ししなければならない構造にひっかかるものはありました。
GetFocus() を実行するのにいいタイミングで送られてくるようなウィンドウ
メッセージが存在するということが、実は一番期待していた答えだったのです。
> グローバル変数のほうがスマートといえるのか?
いえ、私もできるだけグローバル変数は使わないことにしていますので、
グローバル変数を使うことをためらった結果、あのような構造になったわけです。
>>417 >>419
> もしかして GetWindowLong / SetWindowLong を知らないのか?
私へのレスでしょうか? 普通に使っていますが、この場合はそれほど
有用ではないような気が…。私へのレスでなかったらすみません。
0426デフォルトの名無しさん
NGNGいろんなフレームワークで行っているPreTranslateMessageみたいなことやれば?
0427デフォルトの名無しさん
NGNG復元をしてるから、一発で解決するようなメッセージは無いと思う。
0428374
NGNG> ・WM_PAINTメッセージが複数回ディスパッチされる。
WM_PAINTハンドラにMessageBoxを置いたことが原因でした。(^_^;)
> ・DLLのロードに失敗する。
GetProcAddressに失敗していました。エラーコードは127(指定されたプロシージャが見つからない)です。
実は123章のプログラムでもファイルマッピングオブジェクトの読み出しに失敗します。
名前を指定する方法に問題があるのでしょうか?VCとBCCの仕様の違いでしょうか?>>405
0429デフォルトの名無しさん
NGNGDLLは自作か?その際に名前のエクスポートはしてるのか?
エラーコードが出てるんだからまずその内容を調べろよ。
0430デフォルトの名無しさん
NGNGDepedencyWalkerとかでdll内部の関数名を確認しろ。
ま、DepedencyWalkerがなくてもdllの中身が見れるはずだが。
VCでビルドした場合だとC++のデフォで関数名が変わるのは常識だぞ。
エクスポート関数名に@とか混じってないか?
0431デフォルトの名無しさん
NGNG374を読んでる?
アンタもレベル低すぎですから!残念!
0432デフォルトの名無しさん
NGNGDLLの方で
#define EXPORT extern "C" __declspec(dllexport) __stdcall
EXEの方は
typedef __stdcall int (*PTESTFUNC)(int, int);
0433デフォルトの名無しさん
NGNG読解力ないな。誰も話をVCだけに限定してないだろ。
それともBCはdllの規格をMSの規則に逆らうわけか?
0434デフォルトの名無しさん
NGNGCでのコーディングなのにC++で関数名が変わるのは常識とか言ったり
他人をレベル低いとか言ってるのに
自分もトンチンカンなレスしてるからだろ…
>それともBCはdllの規格をMSの規則に逆らうわけか?
関数名の問題なんでDLLの規格は関係ないでしょ。
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNGちゃんと調べたのか?関数名。
どうも君はPGに向いてない気がする。
↓Dynamic Dependency Walker(フリー)
ttp://www.vector.co.jp/soft/win95/util/se232578.html
0438デフォルトの名無しさん
NGNG>Cでのコーディングなのに
そんなこと書いてあった?
0439デフォルトの名無しさん
NGNG君は>>374の足りない記述に関して通常の脳内補完をしているようだ。
それは通常レベルのプログラマ相手なら正しいだろうが、
初心者相手の場合はそうではない。
多くの場合、ありとあらゆる疑いの眼差しで初心者を見守ってあげる必要があるのだ。
0440デフォルトの名無しさん
NGNGDLLのソースにextern "C"が有るから
C++の名前変形は関係ないでしょ。
0441デフォルトの名無しさん
NGNGparse error
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGこの2つのAPIは最近のPCでエラーが起こりますか?
たとえば、CPUによって動作しないとかありますか?
0444374
NGNG紹介して頂いたツールを利用してDLLをリストアップしたのですが、ロードしたDLLは見当たりません。
しかし、LoadLibraryには成功しています。ロードしたDLLと、それに含まれている関数の名前も、
呼出元と呼出先で相違がないことを確認しました。
0445デフォルトの名無しさん
NGNG心の底から氏ねと
0446デフォルトの名無しさん
NGNGZ:\>dumpbin /exports dll04.dll
Microsoft (R) COFF/PE Dumper Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file dll04.dll
File Type: DLL
Section contains the following exports for dll04.dll
00000000 characteristics
0 time date stamp Thu Jan 01 09:00:00 1970
0.00 version
1 ordinal base
2 number of functions
2 number of names
ordinal hint RVA name
1 0 00001238 _TestFunc
2 1 00009158 ___CPPdebugHook
(ry
0447デフォルトの名無しさん
NGNGレス受けた内容についてもろくに解かってないようだし、
1日くらい試行錯誤してから書き込んだほうがいい。
0448デフォルトの名無しさん
NGNGキミの知り合いが突然、「このAPIは最近のPCでエラーが起こりますか?
CPUによって動作しないとかありますか?」って質問してきたらどうする?
返答に困るデショ。
0449デフォルトの名無しさん
NGNG高解像度カウンタは古いCPUだと使えないわけだが
>>443
IntelならPentium以降(P54なら確実、P5はしらん)
AMDは少なくともK5はサポートされてたはず
Cyrix系は不明
0450!= 443
NGNGttp://www.flipcode.com/cgi-bin/msg.cgi?showThread=00000894&forum=general&id=-1
> Joacim: どうしてWin2kマシンでは QueryPerformaceCounter の後ろ24ビットを wrap するの?
> kewldude: くそ、それ知らずに実験してた。Win2kでもフリーズするアプリがあってよ。。。
> treething: 漏れが知る限り、全部のマシンで wrap してるぜ?でも何が問題なんだ?
> kewldude: ああ、でも普通は64ビットを wrap してて、24ビットじゃねーはずなんだよ。
これはどういう問題? wrap ってどういう意味で使ってるの?
0451デフォルトの名無しさん
NGNG電話の相手の苗字とかすぐ忘れるんだよ。
0452389
NGNG>>426
> フレームワークで行っているPreTranslateMessageみたいなことやれば?
どうもありがとうございます。ただ、PreTranslateMessage の機構を
導入するとなると、私のイメージするものからは遠ざかってしまいそうです。
>>427
> MFCのフレームワークでさえ、結構面倒な機構を準備してフォーカスの
> 復元をしてるから、一発で解決するようなメッセージは無いと思う。
なるほど・・・MFCではほとんど組んだことがなかったので気が付きませんでした。
あきらめて今までの方法でいこうと思います。どうもありがとうございました。
0453デフォルトの名無しさん
NGNGもう1度122章のプログラムを作り直せ。
もとのソースは見るな。どこも書き換えるな。
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNGoutput = (input)%size
って感じ。
たとえば文章を80文字で wrap すると、81文字目は次の行の先頭に表示される。
0456デフォルトの名無しさん
NGNG__declspec(dllexport) してるんだからそんな必要はない。
ラベル名に対する、ある思い込みが邪魔をしているだけだ。
0457デフォルトの名無しさん
NGNGはぁ?嘘もいい加減にしろヴォケ
defファイルきちんと書かんと@付いた変な名前になって
GetProcAddressで引けなくなるぞ
0458デフォルトの名無しさん
NGNGでもそうすると他の言語から呼び出せなくなるね
0459デフォルトの名無しさん
NGNG装飾名になるかどうかはエクスポートしたかどうかとは無関係
0460デフォルトの名無しさん
NGNGほら、チョン学校で日本語やり直さないと
0461デフォルトの名無しさん
NGNGha?
0462デフォルトの名無しさん
NGNGだいたい「変な名前」なんて用語ねえんだよ
おおかた MSU 逝く金もねえんだろ (プゲラ
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG装飾名になるかどうかはエクスポートしたかどうかとは無関係だから、
defファイルを書いておかないと装飾名つきのままエクスポートされてしまうと言っているのだと思うが。
0465デフォルトの名無しさん
NGNGなるほど、アフォケテーイでよかったんだな
0466デフォルトの名無しさん
NGNG・・・・・・・・・・・・・・dllネタ終了・・・・・・・・・・・・・・・・・・・・
0467デフォルトの名無しさん
NGNG回答者づらをしてみたかっただけのど初心者が1人いるようだがスルーよろ
0468デフォルトの名無しさん
NGNG質問者は「最近のPC」と書いてるデショ。
質問者はもう少し情報を提供してくれないと返答できませんョ。
0469デフォルトの名無しさん
NGNG詳しく書かれすぎても連投荒らしみたいになるぞ
どんな情報が必要かは回答者ごとに異なると思う
0470デフォルトの名無しさん
NGNGしかも、他人を巻き込み無駄レスを大量発生させる。
0471デフォルトの名無しさん
NGNG技術的な話を楽しみに来てる人だっているわけで・・・
0472デフォルトの名無しさん
NGNG最近では既存のコントロール乗っ取ってサブクラス化して
自分色に染めるのが好きです。
そういう用途に都合の良い既存クラスってありませんか?
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNGstatic
0475デフォルトの名無しさん
NGNG俺もか?
0476デフォルトの名無しさん
NGNGもちろん
0477デフォルトの名無しさん
NGNGC++の場合はどのようにすれば良いんでしょうか?
C#だと
Image img = new Bitmap(width , height);
Graphics buf = Graphics.FromImage(img);
として、バッファに書き込み最後に
g.DrawImage(img , 0 , 0);
とすれば良いと、分かったんですが
C++になると分かりません。
どなたか教えてください
0478デフォルトの名無しさん
NGNG同じやり方ででけへんかい?
0479374
NGNGborland C++Builder での DLL の構築方法
ttp://www.borland.co.jp/qanda/cbuilder/c0003194.html
大変ご迷惑をおかけして、申し訳ありませんでした。しかし、なぜこのような違いがあるのでしょうか?
0480デフォルトの名無しさん
NGNGBCCちゅーからコマンドラインかと思たーよ
0482デフォルトの名無しさん
NGNG何の仕様が違うと思ってるのかは知らないが、
そこに書かれている内容はVC++の場合となんら違いない。
0483477
NGNGC++の場合
Image img = new Bitmap(width , height);
の部分でどう書けばいいか分からないんです。。。
0484デフォルトの名無しさん
NGNGそれってGetProcAddressを使った明示的ロードには見えないがそれでいいのか?
0485デフォルトの名無しさん
NGNGここらへんみて勉強しな
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getprocaddress.asp
0486485
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/usingGDIPlus.asp
0487374
NGNG次のように書き換えました。
extern "C" __declspec(dllexport) int TestFunc( int a, int b )
↓
extern "C" int WINAPI __declspec(dllexport) TestFunc( int a, int b )
このように書き換えないと、DLLのロードに失敗します。
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNGワラタ
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494初心者
NGNG0495デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGWM_SIZE
っていうかMSDN読め
0498デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGのように、キー入力メッセージを渡したいのですが、
Ctrl+A(コントロールを押しながらAキーを押す)入力メッセージを
渡すにはどうすればいいでしょうか?
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGビルドを再度行うと、LINK : fatal error LNK1168: 書き込みモードで Debug/rap.exe を開けません
というエラーが出ます。
以下ソースです。原因分かる方がおりましたらお教え願います。
LRESULT CALLBACK WndProc(HWND hwnd , UINT msg , WPARAM wp , LPARAM lp)
{
switch(msg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,msg,wp,lp);
}
----------略--------------------
while(GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg);
return msg.wParam;
0505デフォルトの名無しさん
NGNGで、前のプログラムをちゃんと終了させればエラーも出なくなる。
0506デフォルトの名無しさん
NGNG終了しないプログラム(ファイル)を書き換えることができないのでビルドに失敗する。
何らかの方法で強制終了してからビルドすべし。
0507デフォルトの名無しさん
NGNGWM_CLOSEをDefWindowProcに送ればDestroyWindowされるけど。
0509505
NGNGWinMain関数中のWNDPROC 型の指定をWndProcでは無くべつ名前にしておりました。
お騒がせ致しました。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG2. 下に表示する
以上
0512デフォルトの名無しさん
NGNG1回描画したら2回目以降の表示で前回の表示消えちゃうだろボケが
0513デフォルトの名無しさん
NGNGこの文章の意味がわからないのは漏れだけ?
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG書いてある文字は理解できるが内容が理解できん
どこから出てきた話だ、これ?
0516510
NGNG変数に貯めてる文字をいっぺんにクライアント領域に描画しますよね。
そうじゃなくて変数に貯めてあるデータを決まったバイト数分ごとに
改行して描画したいのですよ糞ボケが。なので教えてくださいタコが
0517デフォルトの名無しさん
NGNG・口調が悪い
答える物好きもおるまいて
0518デフォルトの名無しさん
NGNG文字列を任意の位置に表示することはできるの?
だったら改行したい量ごとに文字を分割して
それぞれ任意のy座標に書けばいいだけじゃないか。
0519デフォルトの名無しさん
NGNGその文字のサイズ分Yを足して2行目描画
描画実行時にそれをクライアント領域に転送
API以前の問題だな。馬鹿らしい
0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNGいきなりクライアント領域に2回に分けて書いたらちらつく場合があるからじゃない?
0522510
NGNG0523510
NGNG0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNGDrawTextのRECTを設定して描画じゃだめなのか?
0526デフォルトの名無しさん
NGNGれくと構造体は使いません
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG0530↑
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGdwExStyle = WS_EX_LAYERED;
だと表示されないんだけど、これは仕様ですか?
MSDN 読んだけど、特に注意書きはないし(´・ω・`)
ちなみに、WS_CHILD をなしにすると、
ちゃんと半透明もしくはカラーキー付きで表示できるのは確認済みです。
0536デフォルトの名無しさん
NGNGには
「概要: トップレベル ウィンドウに透明と半透明効果を追加するための効率的な手段」
とある。
0537デフォルトの名無しさん
NGNGWindows 2000/XP: Creates a layered window.
Note that this cannot be used for child windows.
Also, this cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC.
0538デフォルトの名無しさん
NGNGset, all descendants of a window get bottom-to-top painting order using double-buffering.
Bottom-to-top painting order allows a descendent window to have translucency (alpha) and transparency (color-key) effects,
but only if the descendent window also has the WS_EX_TRANSPARENT bit set.
Double-buffering allows the window and its descendents to be painted without flicker.
0539デフォルトの名無しさん
NGNGレスサンクスです
> Note that this cannot be used for child windows.
ハッキリ書いてましたね(´・ω・`)
日本語のほうにはこれっぽちも書いてないのにヽ(`Д´)ノ
お騒がせしました。
0540510
NGNG特にバックバッファとか逝ってた糞ボケ。はぁ?アホ?なに?バックバッファって?
0541535
NGNGフォーカスを親から奪ってしまう点などは、無理矢理SetFocusさせて解決できそうです。
ああ、あと位置も、親のWM_MOVEの時にまとめて修正で行けそうです。
ありがとうございました。
0542デフォルトの名無しさん
NGNGもっと正確なSleepを使うにはどうすればよいのでしょうか?
0543デフォルトの名無しさん
NGNGそんなSleepありません。マルチメディアタイマーを使っても
そんな精度出るかどうか。
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNGそれでは、1ms待ちたいのに、1秒と10ms待たされる事になりますけど…
timeSetEventも駄目でした。
timeGetTimeで測定しているのが駄目なのかもしれないので、
PerformanceCounterで測ってみます。
0546545
NGNG0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGSetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL)
してから、timeSetEvent したらどうなるのかな?
# マシンが応答しなくなるかもしれんがw
0549545
NGNG特に重たくはなりませんでした。
timeSetEvent(17, 1, TimeProc, 0, TIME_PERIODIC);
だと、10msか20msにばらけるので使えないと思ったのですが、
timeSetEvent(1, 1, TimeProc, 0, TIME_PERIODIC);
にして、TimeProc内で17ms経過を待ってみます。
0550545
NGNG>548で単純ループ(CPU使用率100%)で時間を数えると、マシンの応答が無くなりました。
これを変えなければ特に遅くはならないので、単純ループで数える事にします。
0551デフォルトの名無しさん
NGNGtimeBeginPeriod(1) すると、Sleep() の精度も上がるよ。
どっちにしろ、リアルタイムOSではないので完全に正確にはならないが。
0552デフォルトの名無しさん
NGNGあれ普通マイクロ秒とかそういう精度だろ?
0553デフォルトの名無しさん
NGNG何の目的で正確に10ms待つ必用が用途を言った方がいいかも。
>>551で十分かもしれないし、場合によってはドライバ書いたり
別OSじゃないと駄目だったりするから。
あらゆる状況で10msだけ待つことを保障するっていうのは普通
Windowsじゃ無理。
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNGファイルを選んで右クリックでコンテキストメニューが出るだろ。
0556デフォルトの名無しさん
NGNGzlibをstatic linkしろ
0557デフォルトの名無しさん
NGNGzlibの入手先やリンク方法を教えてくださ
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGQueryPerformanceFrequency
>>545
timeBeginPeriodしなきゃtimeGetTimeの精度も上がらないのでは?
0563デフォルトの名無しさん
NGNGvc6.0+win32環境です。
ツールバーをカスタムドローしてボタンのアイコンを書いています。
NM_CUSTOMDRAWメッセージを処理してNMCUSTOMDRAWのRECTメンバ
からアイコンの位置を取得する時に、ドロップダウンを持つボタンのみ
縦の位置がずれてしまいます(XP環境でテーマ(manifest)を置いている時に限りです)。
何方か位置がずれない方法を知りませんでしょうか?
よろしくお願いします。
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNGLVM_GETHEADERと
HDM_GETITEMCOUNTかな
0566名無し~3.EXE
NGNGMSDNで見つけられなかった・・(つД`)
0567デフォルトの名無しさん
NGNG0568名無し~3.EXE
NGNGありがとうございまつ。これで今日寝られる・・・(つД`)
0569デフォルトの名無しさん
NGNGGetOpenFileName()で指定したファイルをオープンできる所まで試しました.
ですが,選択する画面でデフォルトのパスがマイドキュメントになっています.
これを任意のディレクトリに変更するにはどうしたらよいでしょうか?
VC7環境です
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGWindowsXPで
ファンクションF3キーでの「検索結果」ウインドウ
をグローバルフック等で無効化したいのですが、
どのクラスでメッセージを受け取っているのか
分からない状態で困っています。
spy++などで「Shell_TrayWnd」を覗いてみたのですが
「0xC0F2」(登録:ShellFileOpened)のメッセージが
ポストされていて、未処理の様で、ここでは無いみたいです。
どなたかご存知の方いらっしゃいませんでしょうか?
0572545
NGNG私の環境では、timeBeginPeriod(1)を使ってもSleep(1)は10msかかりました。
>>552
Sleep(1)にかかる時間を測定するために PerformanceCounter を使ったら、
20msかかっていたと言う意味です。
>>553
用途はゲームです。 (最初に言うべきでした)
>>562
timeBeginPeriod(1)でtimeGetTimeの精度が上がるのはNT系のみのようです。
9x系は最初から1ms単位です。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpmltimd/html/_win32_timegettime.asp
timeBeginPeriod(1)とtimeGetTimeで時間の測定は十分正確にできますが、
問題はCPU使用率を下げるために呼び出す Sleep(1) が 10ms も待たされる事です。
結局、Sleep は指定した時間をms単位で待ってはくれるけど、
その時間が過ぎてもタイムスライスの関係ですぐには復帰しないのでしょうかね。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGもしかして、環境は9xなのか? 2000ではそれなりにきっちりSleep()してくれたんだが。
0575デフォルトの名無しさん
NGNGだから極端な話20秒ウェイトがかかったとしても仕様通り
0576デフォルトの名無しさん
NGNGThe Sleep function suspends the execution of the current thread
for "at least" the specified interval.
""内に注目。
0577デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/sleep.asp
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_sleep.asp
>指定された時間にわたって、現在のスレッドの実行を中断します。
0578デフォルトの名無しさん
NGNG最低、2chなんぞ頼るなよボケ、絶対採用しない
0579デフォルトの名無しさん
NGNG間違ってあなたの会社へ行かないようにするため、社名を教えてくれませんか?
0580デフォルトの名無しさん
NGNG一応、Windows でもっとも正確なタイマーがマルチメディアタイマーということに
なっているが…
http://support.microsoft.com/default.aspx?scid=kb;ja;148404
http://support.microsoft.com/default.aspx?scid=kb;ja;153400
というか、何でそこまで正確に 1ms の時間が必要なんだ?
0581デフォルトの名無しさん
NGNG1ms単位が必要と言うより、10ms単位が困るのです。
10ms単位だと、11ms待ちたい時に20ms待つ事になり、倍時間が変ってきます。
これが、100msと110msとなら気にならないかもしれません。
0582デフォルトの名無しさん
NGNGマイクロソフトです。
0583デフォルトの名無しさん
NGNGそれはやっぱり1ms必要ってことじゃん
0584デフォルトの名無しさん
NGNG正確に訳せボケ!
0585デフォルトの名無しさん
NGNG11ms待ちたい時に20ms待つ事になっても大丈夫なように作るのが
Windows流です。
0586デフォルトの名無しさん
NGNGSleepから返って来た直後に別スレッドに持ってかれたら意味無いわけで。
マルチタスクOSで正確なウェイトなんて考えるほうがバカ。
0587デフォルトの名無しさん
NGNGメインループでぶん回し、メインループから分岐で各処理を呼び出す
ウェイトが必要なら、その処理を空回りさせて処理しろ
うちのプログラムで使ってるそのへんの処理を簡略化して書くとこんな感じだ
// これはメインループから呼び出される関数内
switch( process ){
case WAIT_START:
TickCheckStart = GetTickCount();
oldprocess = process;
process = WAIT;
break;
case WAIT:
if( (TickCheckStart + 10) > GetTickCount() )
process = oldprocess;
break;
case KEYWAIT:
// キー待ち処理とか
// あとはこの調子で画面効果とか、スクリプト処理とかを分岐させていく
}
// 画面描画
0588デフォルトの名無しさん
NGNG常時CPU使用率が100%になるゲーム、逝ってよし。
Sleepを怖がってWindowsでゲームが作れるか!
0589デフォルトの名無しさん
NGNGあぁ、Sleepは入れるよ
ただ、Winに処理返すために使うのであって、10msきっちりとかは考えない
>>581で言ってるような細かいことにSleep使うのはやるなってこと
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNGSleepなんか使うな、メッセージへの応答も遅くなるし。
0592デフォルトの名無しさん
NGNGゲームループは別スレッドで回すモンじゃないのか?
0593デフォルトの名無しさん
NGNGカンマ区切りのデータを読み込んで
それぞれのエディットボックスに表示させたいと思っているのですが・・・。
最初はWM_COMMANDメッセージのイベントにANSI Cでstrtokを使用し、
カンマ区切りでデータを分割しようとしたのですが
データに日本語が入っているため、うまくいきませんでした・・・。
こうすれば超簡単とかいうのがございましたらお教え願います。
0594デフォルトの名無しさん
NGNGダウト
というかWIN32APIの話ではないな。
どーしてもWIN32APIで処理したいなら、ODBCでテキストドライバでも使え。
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGWin32APIじゃないけど_mbstokじゃだめか?
0597デフォルトの名無しさん
NGNG日本語をカンマ区切りでテキストに書き込めましたので
読み込みもできると思い込んでおりました。
英数字だけのカンマ区切りのデータの場合の処理の仕方がありましたら
どんなものか概要をお教え頂ければ幸いです。
WinAPIでコントロールをたくさん貼り付けて作成しているので、
こちらで質問させて頂きました。
そもそも、WinAPIにANSI Cを使うことは間違いなのでしょうか。
0598デフォルトの名無しさん
NGNGしょうか?
自動的でなくても、表示位置を任意に設定できるならそれを使おうと思うのです
が、どうしても方法が分かりません。
0599デフォルトの名無しさん
NGNGそれ自体は間違いでも何でもない。
・ANSI C関数の使い方(選び方)
・このスレの使い方
が間違っている
0600デフォルトの名無しさん
NGNGGetFreespaceEx()で取得できるのでしょうか?
0601600
NGNGDVD-RAMドライブにDVD-RAMを挿入した状態で、
GetDriveType()を行った場合、DRIVE_RAMDISKは返ってきるのでしょうか?
0602デフォルトの名無しさん
NGNGGetDiskFreeSpaceEx()のことかね?
0603デフォルトの名無しさん
NGNGDVD-RAMはあからさまにRAMディスクじゃねえからなあ…
0605602
NGNGPanasonic LF-D201ではGetDriveType()でDRIVE_CDROMが返ってきた。
GetDiskFreeSpaceEx()で空き容量を取得することは出来た。
0607デフォルトの名無しさん
NGNGIStream pi;
if( FAILED(hr = SHCreateStreamOnFile("A:\\a.txt", STGM_WRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DIRECT, &pi)) )
{ /* エラー */ }
const UINT size = 1457665;
LPBYTE buf = new BYTE[size];
ULONG written;
if( FAILED(hr = pi->Write(buf, size, &written)) )
{ /* エラー */ }
空のフロッピーに1457665バイト(空き容量+1バイト)書き込みます。
空き容量より大きいので失敗すると思ったのですが、なぜかS_OKが返ってきます。
writtenにもsizeと同じ値が返ってきてます。
空き容量が足りないはずなのに、なぜ成功してしまうのでしょうか?
0610デフォルトの名無しさん
NGNGバッファリングされるからWriteではエラーにならないとか?
もっと極端に大きなサイズを書こうとすればエラーになるんじゃない?
0611デフォルトの名無しさん
NGNGノートパソコンだとファンがうるさいそうです。
0612デフォルトの名無しさん
NGNG492 とは?
0613607
NGNGCommit(STGC_DEFAULT)を呼んだらSTG_E_MEDIUMFULLが返ってきました。
どうやらバッファリングしてるみたいです。1,454,080が512や4096の整数倍だし。
とりあえず最後にCommitすることで解決しました。Writeでエラーにならないのは釈然としないけど…
ありがとうございました。
>>612
なんでもありません。いつのまにか付いてました。
0614デフォルトの名無しさん
NGNG>Writeでエラーにならないのは釈然としないけど
実際に書き出しているわけではないから仕方ないかと。
0615デフォルトの名無しさん
NGNGあるお方のお手本通りウインドウプロシージャ内(WinPrco)のWM_CREATEで作成しているのですが
WinMain関数内で作成しないでWM_CREATE内で作成する理由はあるのでしょうか。
また、WM_CREATEは、プログラム起動時に発生するメッセージという認識なのですが
間違っていますでしょうか?
0616デフォルトの名無しさん
NGNGWM_CREATEが来るのはウィンドウ作成中
WinMainでウィンドウ作成後に設定するよりスマート(だと俺は思っている)
WM_CREATEはプログラム開始時ではなく、ウィンドウ作成時。名前の通り
0617デフォルトの名無しさん
NGNG関する初期化処理をWM_CREATEに書いておけばウマーとか。
0618デフォルトの名無しさん
NGNGこういうモニタの物理的なアスペクト比を取得する手段って
ないでしょうか?
0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNGCreateWindowで作成したLISTBOXで
WM_DRAWITEMを使わずに
リストボックスの各項目の背景を任意のビットマップにする方法はあるでしょうか?
なんかうまいことやってるアプリを昔見かけた気がするのですが・・
あれはオーナードローなのかな。
0623デフォルトの名無しさん
NGNGグローバル変数の使用を極力避けるようなプログラミングを心がけている人なら、
自然と WM_CREATE の中で初期化をおこなうようになりますよん。
0624デフォルトの名無しさん
NGNG>自然と WM_CREATE の中で初期化をおこなうようになりますよん。
関連性ないよ
0625デフォルトの名無しさん
NGNGもし何らかの理由でコントロールの構築に失敗した場合、
DestroyWindowせずとも-1を返してやるだけでウインドウの作成をキャンセルできるから。
0626デフォルトの名無しさん
NGNGローカルフックでWM_SETFOCUSのHWNDを保存しる
0627デフォルトの名無しさん
NGNGどうしたらいいのでしょう?SEE_MASK_DOENVSUBST フラグを使えばいいよう
気もするんですが、ぐぐってみてもよくわかりませんでした・・・orz
0628デフォルトの名無しさん
NGNG環境変数を渡すにはCreateProcessじゃないと無理。
SEE_MASK_DOENVSUBSTはプログラムのパスやコマンドライン引数の部分で"%WINDIR%"のように指定された環境変数を展開させるためのフラグだったはず。
0629デフォルトの名無しさん
NGNGなぜかアルファベットが2バイト文字のようにすこし大きくなります。
表示された文字を別のメモ帳にコピペするとふつうの1バイト文字になります。なぜでしょうか?
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNGモーダルダイアログボックスにSendDlgItemMessageで転送するとふつうに表示されるのですが
0635デフォルトの名無しさん
NGNGWin32APIの仕事って少ないでしょうか。MFCを使えたほうがよいのでしょうか?
0636デフォルトの名無しさん
NGNG覚えるのはそれからでも遅くは無い
0637デフォルトの名無しさん
NGNG解説しているようなサイトなどないでしょうか
0638635
NGNG就職しています。
ANSI Cはできるので、ステップアップと思い、Win32APIをやっているのですが
仕事ってあります?Win32APIでプログラムを作成すると無駄に時間だけが掛かってしまうのは私が馬鹿だからなのでしょうか。。。
0639デフォルトの名無しさん
NGNG新卒ならたいがいのところは大丈夫。
30過ぎてるときついかもしれないけど。
0640デフォルトの名無しさん
NGNG就職先で必要でなければ無理に覚えることは無いでしょう。
0641デフォルトの名無しさん
NGNGMFC使うより格段に仕事が早く高品質にできるのなら
多分あると思いますよ。
0642デフォルトの名無しさん
NGNGそれを踏まえた上でどうやってアプリ作るかは好きにすればいい。って言っても仕事だとその辺なかなか自由にはならんだろうが。
0643デフォルトの名無しさん
NGNGAPIの知識は無駄にならないと思う
0644デフォルトの名無しさん
NGNGもしWin32APIでCUIアプリケーションを作成しているとしたら、あなたが馬鹿だからです。
GUIアプリケーションを作成しているとしたらそもそも単純に時間を比較すること自体が間違ってます。
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGグローバルフックで
エディットコントロールのデフォルトのポップアップメニューのハンドルを取得したいのですが
どうやればできるでしょうか?
WH_MOUSEでWM_CONTEXTMENUだとエディットコントロールのハンドルが帰ってきて駄目でした
0647デフォルトの名無しさん
NGNGメニューハンドルを得るのは無理では?
0648デフォルトの名無しさん
NGNGありがとうございました。
0649デフォルトの名無しさん
NGNGそれが正解だな
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNGっVCL
0656デフォルトの名無しさん
NGNG#define ID_HOGE 1
#define ID_HAGE 2
///////////////////////////
hoge.rc
HOGE MENU {
POPUP "ほげ" {
MENUITEM "はげ", ID_HAGE
//////////////////////////
「POPUP "ほげ"」にID_HOGEを関連付ける方法はなかとですか?
0657デフォルトの名無しさん
NGNGではだめか? リソーススクリプトの #define が C と同じプリプロセサ呼び出してるかどうか自信ないが・・・
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG取得するAPIってないでしょうか?
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGMSDNによればwinwlx.hに定義してあるらしいんだけど、ヘッダをインクルードしても
「定義されてません」って言われちゃう。で、ファイルの中を見たらそんな構造体ありゃしない。
ググっても外国のページしかヒットしないし、仕方なくそのページを開くと普通に使ってるし。
何か足りないのかな?
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNGヘッダ読んだ?
#if とかでハネてるケースよくあるよ
0665デフォルトの名無しさん
NGNGSDK は最新にしてある?
0666デフォルトの名無しさん
NGNG私も確認してみた。
VC98のwinwlx.hには、WLX_NOTIFICATION_INFO構造体がないね。
そんなわけで、>>665の助言に従うべきでしょう。
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG0669656
NGNGそれはちょっと無理です。
>658-659
スレ汚し失礼しました、申し訳ないです。
0670662
NGNG足りないから補いたいのは山々なんだけどね〜
>>664,667
winwlx.hをエディタで開いて探したよ。
でも見つからなかったんで、「ファイルから検索」で探したよ。
残念ながら見つからなかったさ。
>>665
環境はVC6 SP6 なんだけど、これより新しいのって何だろ?.NET?
0671デフォルトの名無しさん
NGNG>>2
0672デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNGなぜそれが気になるんだ?
0676674
NGNGVirtualLock()はVirtualAlloc()以外の方法で確保したメモリにも使えますか?
0677デフォルトの名無しさん
NGNGページアウトされないってことなら、どんなメモリ確保も物理メモリ上にある保証はありません。
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG使えません。MSDN嫁
0681デフォルトの名無しさん
NGNGこれはEUC-KRでかかれているらしく、リテラル文字列が以下のように終端の"が
なくなってしまいます。
InsertColumn(3,"コクウスセ・,LVCFMT_LEFT,65,3);
日本語環境でclコンパイラにEUC-KRを認識させる方法はないでしょうか?
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNGソースファイルを適当なエディタで読み込んで変換するんじゃいけないの?
0684681
NGNGエンコードつき保存で、EUC-KR -> UNICODEでできました。
0685デフォルトの名無しさん
NGNG画面ごとにexeモジュールを作成しているので
画面の中のコマンドボタンを実行すると
別画面(exe)を呼び出し、元のexeは終了する方法を考えています。
0686デフォルトの名無しさん
NGNGなんでそんな面倒なことするんだ?
リソースで定義したダイアログを順々に表示するんではいかんのか?
0687デフォルトの名無しさん
NGNGレスありがとうございます。
リソースについて調べました。使ってみるつもりです。
リソースで定義したダイアログを呼んでも元ウィンドウは残ったままになってしまいそうなのですが・・・。
0688デフォルトの名無しさん
NGNG元を親ウィンドウとして処理するってのが普通だと思うけど…。
それが嫌なら、元ウィンドウ消してから
別のウィンドウ表示すれば良いのでは?
0689デフォルトの名無しさん
NGNGそれで別 exe の方がやりやすいとか。
別画面が終わったら元画面に戻したりしないの?
元画面終わらせたらかえって面倒だよ。
0690デフォルトの名無しさん
NGNG今、32APIでシューティングゲームを作ってるんですが、
パソコンが壊れてしまったので
新しく買い換えたのですが、
新しいPCの方でいきなり描画処理がおかしくなりました。
カクカクと動くし、
背景以外の透過画像やFPS表示もされない・・・
前のPCはビデオカードがオンボードだったんですが、
今回のPCはこれを期に一気に
RADEON X300 の 128Mを積んだマシンを購入したんですが、
PCI Expressがいけなかったんでしょうか・・・
どなたか解る方いらっしゃいますでしょうか?
よろしくお願いします・・・
0691デフォルトの名無しさん
NGNGもしかしてスレ違いかも? (その場合、ハード板が妥当と思われ)
「積んだ」っていうのがどういう形でかわからんが
特注でつけたパーツが新しすぎると
ドライバが「標準」になってたり
初期ロット系のトラブル抱えてたり
OS 側の処理がタコだったり
つーことは結構あるな
0692デフォルトの名無しさん
NGNGそういうのもあるけど質問の仕方からして、あんまり慣れてない人が
環境依存のコード書いちゃったっつうのもありうる。
>>690
自分で書いたコードならプロファイルとるなりトレースするなりで
どの処理に時間がかかってるのか調べてから相談しても遅くない。
DirectXつかってるならカードごとに対応してる機能に違いがある
んで〜CAPSみたいなのを調べてみる必用もあるかも。
0693685=687
NGNGレスありがとうございます。
リソースで新たな画面を呼び出すと
元のウィンドウが表示されたままになってしまい、
モニター上には元の画面と新しい画面の2画面になってしまわないでしょうか・・。
ってやってみってます。すみません。
exeを作っているのは私一人です。
0694デフォルトの名無しさん
NGNGっ[ ShowWindow ]
0695デフォルトの名無しさん
NGNGだから前のウィンドウはそのつど消せっての
0696685=687=693
NGNGmain.rcを作成しその中に以下の一行を追加
MAIN_RESORCE "NEXT_GAMEN.EXE"
VC6++のワークスペースのResorce Fileにmain.rcを追加。
ビルドをしたら以下のエラーが表示されました。
C:\Program Files\Microsoft Visual Studio\MyProjects\Main\main.rc (3): error RC2135 : file not found: "NEXT_GAMEN.EXE"
NEXT_GAMEN.exeは、今回編集しているソースと同じディレクトリおよびdebugフォルダにも格納しましたが
上記エラーが表示されます。
初歩的なことですみません。
なにかこんな頭の悪い人のためのお勧めのWin32APIの参考書はありますでしょうか。
0697デフォルトの名無しさん
NGNG0698690
NGNGスレ違いな質問に答えてくださいましてありがとうございました。
ところで、環境依存のコードとありますが、
現在表示されていないソースでは、
画像の透過処理のTransparentBltを使っているんですが、
ここの処理がうまくいってない様です・・・
これは、環境依存コードなのでしょうか?
よろしければ、ご教授ください。
0699デフォルトの名無しさん
NGNG何個かのキーを同時に押すとBeep音がします。
これを鳴らないようにする方法はないでしょうか。
0700デフォルトの名無しさん
NGNGスピーカーを引っこ抜く
0701デフォルトの名無しさん
NGNGReadFile関数で読み込みましたら、すべての行を一回で読んでしまいました。。
ReadFile(hFile , strFile , GetFileSize(hFile , NULL) , &wReadSize ,NULL)!=0)
0702デフォルトの名無しさん
NGNGそういうAPIはないです
0703デフォルトの名無しさん
NGNG>702なので、改行文字まで一文字ずつ読む必要あり。
#いっそ、全部読んでからばらすのも手かも。
0704デフォルトの名無しさん
NGNGテキストファイル読むこともなかろうにと思うが。
C/C++のライブラリ使えば済むじゃん。
0705デフォルトの名無しさん
NGNGそういうスレではないです
0706デフォルトの名無しさん
NGNG遠回りを奨めるスレでもないと思うが。
0707デフォルトの名無しさん
NGNG>705なので、スレタイを冷静に読む必要あり。
#いっそPCの電源切って窓から投げ捨てるのも手かも。
0708デフォルトの名無しさん
NGNGAPIでオープンしなければならない事情があったときはどうしたら?
0709デフォルトの名無しさん
NGNGWin32APIにそれ相当のものがあるか?って質問だろう。
0710デフォルトの名無しさん
NGNG毎回、この質問が出ても質問者を叩いて終るし。
誰かコードアップしたれよ。
0711デフォルトの名無しさん
NGNG0712デフォルトの名無しさん
NGNGfgetsのソース読めば済むだろ
0713デフォルトの名無しさん
NGNGfgetsじゃベタだろ。
�@FileReadで1バイトづつ読んで、\nで読み込み終了
�Aファイルポインタを\nの次に移す。
�BEOFまで�@を繰り返す
つうソースが欲しいんだと思うぞ。>>701は
0714デフォルトの名無しさん
NGNGfgetsの中身なんて改行文字がくるまでfgetcで読み込むような感じだろ。
0715デフォルトの名無しさん
NGNGアピアピ連呼するんですが
なんとかなりませんか。
0716デフォルトの名無しさん
NGNG'\n'の手前にある'\r'は捨てる処理を入れたほうが良いんじゃないかい?
0717713
NGNGも、もちろん知ってるよ。
ウ、ウィンドウズの改行マークは"\r\n"だ、だろ?
0718デフォルトの名無しさん
NGNG関数の前後をtimeBeginPeriodとtimeEndPeriodで挟んで精度を上げているのですが,
これ(timeBeginPeriodとtimeEndPeriod)ってtimeGetTimeを呼ぶたびに
毎回呼ばないと精度を保てないんでしょうか?
0719デフォルトの名無しさん
NGNGいくら API スレだからって、
ReadFile で1バイトづつ読ませるなんて、
非効率的な事は勧められんだろう。
そんなことしたら、fgets 使うのに比べて
何十倍も処理時間掛かるじゃん。
0720デフォルトの名無しさん
NGNG誰も質問者を叩いて無いじゃん。
むしろ叩かれてるのは>>704
0721デフォルトの名無しさん
NGNGfgetsをベタとか言ってる時点でネタだと思うが。
fgetsのソースを見る、でこの質問は終了のはず。
0722デフォルトの名無しさん
NGNG貴様!701が読み込みにMutex使ってたら、どう責任取るつもりだ?
0723デフォルトの名無しさん
NGNG続きは質問者が出てきてからってことで・・・
0724デフォルトの名無しさん
NGNG具体的にいうと_read()とかReadFile()とかなんだけど。
低レベルなファイル「書き込み」関数は使うメリットがそれなりにあると思う。
0725デフォルトの名無しさん
NGNG非同期 I/O
0726デフォルトの名無しさん
NGNG_open_osfhandle + fdopen とか。
0727デフォルトの名無しさん
NGNGCreateFile()の引数でシーケンシャルスキャン・ランダムスキャンを指定したいとか、
キャッシュ効かせないようにしたりとか(確かFireFileCopyとかそういう事してた)、
SetEndOfFile()使いたいとか、2GB・4GB超えるようなファイルを扱うとか?
0728デフォルトの名無しさん
NGNGハングアップすることがあるんですが、原因がわかる方いらっしゃいますか?
0729デフォルトの名無しさん
NGNGwinternl.h のプロトタイプをそのまま使ってない?
プロトタイプがバグってる(WINAPIが付いてない)から使っちゃだめ
0730デフォルトの名無しさん
NGNGまあどっちも__stdcallに展開されるんだけど
0731デフォルトの名無しさん
NGNGありがとうございます。
ヘッダーは DDK に付属のものを使っています。
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryInformationFile(
IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock,
OUT PVOID FileInformation,
IN ULONG FileInformationLength,
IN FILE_INFORMATION_CLASS FileInformationClass
);
どうも、特定のファイルをクエリーするときにだけ、ハングアップするようなのです。
ハングアップするというのは、この API から戻ってこないということです。
0732デフォルトの名無しさん
NGNGReadFile()はCランタイムライブラリを全く使わないプログラムを作るときに使うんだろう。
0733デフォルトの名無しさん
NGNGWM_IME_COMPOSITION
で変換候補が確定した時にその単語がどの辞書
(標準辞書なのかユーザー辞書なのか)に含まれるか調べたいのですが
どうやって調べればいいんでしょうか
0734デフォルトの名無しさん
NGNGあるけど、これってwin32apiでは実装されてないのでしょうか?
▲▼をクリックすると、テキストボックスの日付が変わる機能です。
0735デフォルトの名無しさん
NGNGスピンコントロールでぐぐれ
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG{
HRESULT hRes;
LPCONTEXTMENU pContMenu;
HMENU hMenu;
POINT pCursor;
int iCommand;
CMINVOKECOMMANDINFO stInvokeInfo;
hRes = m_pDTFolder->GetUIObjectOf(this->Handle, 1, (LPCITEMIDLIST*)pIDL, IID_IContextMenu, 0, (LPVOID*)&pContMenu );
if (hRes != NOERROR) return;
hMenu = CreatePopupMenu();
hRes = pContMenu->QueryContextMenu(hMenu, 0, 1, 0x7FFF, CMF_NORMAL);
if (hRes == NULL) {DestroyMenu(hMenu); return;}
GetCursorPos(&pCursor);
iCommand = TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_RETURNCMD | TPM_LEFTBUTTON, pCursor.x, Cursor.y, 0, this->Handle, NULL);
if (iCommand != 0) {
/* stInvokeInfo 処理 */
}
DestroyMenu(hMenu);
pContMenu->Release();
}
0738737
NGNGpIDLは、「マイコンピュータ / C: (VOLUME) / HOGEHOGE」
のようになっています
この関数を実行すると、メニューは表示されるのですが
メニューの表示項目が必ずマイコンピュータのものになってしまいます
しかし、そこで強引に HOGEHOGE のメニューで
「ショートカットの作成」を行うと、
「ここには作れません、デスクトップに(r」となり
そのできあがったショートカットは HOGEHOGE のものになります
hRes = pContMenu->InvokeCommand( &stInvokeInfo );
を実行する、stInvokeInfo で構造体にpIDLを入れる必要が無い事から
pContMenu には正しくpIDLが入ってるように思うのですが
これは、必ずしもそういうことじゃないのでしょうか?
0739737
NGNG具体的に渡しているpIDLは
// ファイルのIDリスト
HRESULT hRes;
wchar_t lpszDisplayName[MAX_PATH];
m_strFullPath = "C:\\HOGE\\PUNI";
StringToWideChar(m_strFullPath, lpszDisplayName, MAX_PATH);
hRes = Form1->m_pDTFolder->ParseDisplayName( NULL, NULL, lpszDisplayName, NULL, &m_pIDL2, NULL);
// マイコンピュータのIDリスト
SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &m_pIDL1);
これに対し
ttp://www.kab-studio.biz/Programing/Codian/ShellExtension/06.html
のConcatItemIDをそのまま使って
pIDL = ConcatItemID(m_pIDL1, m_pIDL2)
のような形になっております
0740デフォルトの名無しさん
NGNG0741737
NGNGそれともファイルのIDリストのm_pIDL2から末尾を取るという事でしょうか?
Desktopをつけなくても、
マイコンピュータからのフルIDLISTが入手できるみたいで
挙動は変わりませんでした
末尾だけをGetUIObjectOfに渡したら
フォルダの場合メニューが出るけど、正しく実行されない
(どうやらデスクトップフォルダ+ファイル名になってるみたい)
ドライブの場合は妙に寂しいメニューしか出ない
って感じで、かなり困ってます。。。
0742デフォルトの名無しさん
NGNGconst ITEMIDLIST* pIDLSingleLevel = ::ILClone(::ILFindLastID(pIDL));
::ILRemoveLastID(pIDL));
IShellFolder* pDesktop;
IShellFolder* pFolder;
IContextMenu* pContextMenu;
::CoCreateInstance(CLSID_ShellDesktop, NULL, CLSCTX_INPROC, IID_IShellFolder, (void**)&pDesktop);
pDesktop->BindToObject(pIDL, NULL, IID_IShellFolder, (void**)&pFolder);
pDesktop->Release();
pFolder->GetUIObjectOf(hwnd, 1, &pIDLSingleLevel, IID_IContextMenu, NULL, (void**)&pContextMenu);
pFolder->Release();
なんか();
pContextMenu->Release();
::ILFree(pIDLSingleLevel);
::ILFree(pIDL);
大体こんな感じ。
0743737
NGNG本当にありがとう、なんとかうまく表示されるようになりました
・・・これからIContextMenu2 との戦いっす、ふみゅー
0744デフォルトの名無しさん
NGNGコントロールを画面に貼り付ける予定なのですが
座標指定でなにかいい案はありませんでしょうか。
ちょっとずれたらすべて修正なんて気が狂いそうです。
0745デフォルトの名無しさん
NGNGその実装を考え直すことを勧める
リストビューを使うとか、他に方法はあるだろ?
0746デフォルトの名無しさん
NGNGリソースエディタを使わずに、CreateWindow()でセコセコと生成するとか。
0747デフォルトの名無しさん
NGNG多分それが正解だろうな
描画位置とかサイズとかをdefineしておけば変更も簡単だし
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNGリソースに対して優しくない。UIとしても。
それはそれとして、表計算ソフトからジェネレートできるようにすりゃいいだけな気もするが
0752デフォルトの名無しさん
NGNGリソーススクリプトを手動で修正するとか。
0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG昔、VBで自滅してた奴がいたがw
128個位でダイアログが出なくなったような。
Win32 は関係ないのかな?
あと、100個もコントロール載せるとダイアログが出てくるまで時間が掛かる、
ウィンドウの再描画にも時間が掛かるよ。
自分で表を書いておいて、指定のセルを編集時にテキストボックスを
セルのサイズで作って出すのが、綺麗だと思う。
Excel とかがやってる方法だけど…
ちと工数が掛かりすぎるかな?
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNGそして、またバカが一人
0761デフォルトの名無しさん
NGNGリソースのビットマップを表示させたいのですが、
http://www.kumei.ne.jp/c_lang/sdk/sdk_26.htm
http://wisdom.sakura.ne.jp/system/winapi/win32/win104.html
↑で紹介されてる手順通りに書いても、LoadBitmap()がNULLを返してきて描画してくれません。
ICONリソースなどは同じ手法で読み込んでくれるのですが…。
なお、実行ファイルのサイズから正常に埋め込まれてるのは確かのようです。
環境は windows2KSP4 + Visual C++.NET std です。
初歩的な質問かもしれませんが、宜しくお願い致します。
0762デフォルトの名無しさん
NGNGとりあえず引数の確認とGetLastError()
0763デフォルトの名無しさん
NGNGついでにResourceHackerとかで実行ファイルのリソース確認しとき。
念のため。
0764デフォルトの名無しさん
NGNG∀・)っMAKEINTRESOURCE( MYBMP );
0765デフォルトの名無しさん
NGNGhttp://black.sakura.ne.jp/~third/system/winapi/win.html
ここ行けなくなってしまってるね。
結構利用してたのに残念。
0766デフォルトの名無しさん
NGNGttp://wisdom.sakura.ne.jp/
ここに移転したって書いてありますけど…
0767デフォルトの名無しさん
NGNGメッセージというのはないのですか?
0768デフォルトの名無しさん
NGNGすみません。初歩的な質問で。
色はSetTextColorで変更できたのですが・・・。
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNGメモリデバイスコンテキストに書いて、ストレッチブリットするのじゃだめ?
0774デフォルトの名無しさん
NGNG書いてからStretchしたらギザギザになんね?
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGWM_DEVICECHANGE
CD-ROMドライブのプロパティで、
自動挿入をオンにしておく必要があるが。
0778761
NGNGGetLastError()で取得したエラーコードをFormatMessage()で変換してみたところ、
「指定したリソース名がイメージファイルに見つかりません。」
と出ました。
でも「猫でも〜」や他所で見かける例だと、この手順で問題なく読み込んでくれるはずなのですが…。
ResourceHackerは敷居が少し高そうですので、もう少し慣れたら触ってみることにします。
レスありがとうございました。
>>764
MAKEINTRESOURCE( MYBMP )としてみましたら呆気なく表示されました。
実際はただキャストしてるだけのようですが、なぜこれで上手く行くのでしょうか…。
ちょっと考えてみます。
レスありがとうございました。
0779デフォルトの名無しさん
NGNG表示させたいのですが、どのAPIを使えばよいのでしょうか?
「開く」「保存」「キャンセル」のボタンがあるやつです。
また、上書き確認のダイアログの表示方法もありますか?
0780デフォルトの名無しさん
NGNGできるとしたらどうすれば。
0781デフォルトの名無しさん
NGNGGetOpenFileNameとかGetSaveFileNameとかかな。
しかるべきフラグを渡せば、上書き確認とかもできる。
0782デフォルトの名無しさん
NGNGリソースの識別子は "" で囲った文字列形式と
数値形式の2通りがあるんです。
>>778さんは数値形式でリソースを作成したのでは?
LoadImage 等の関数は文字列形式を必要とするので、
MAKEINTRESOURCEマクロでキャストする必要があります。
OSはたぶん、渡された文字列ポインタの値をみて、
もし上位ワードが0x0000ならば、
それは文字列ではなく数値をキャストしたものである、
と判断しているのでしょう。
0783デフォルトの名無しさん
NGNGAPIを徹底的に調べればわかるんでないの?
0784デフォルトの名無しさん
NGNGやったことないので知らないけど
SetupDi〜のAPI調べるといいかも
SetupDiRemoveDeviceとかなんか怪しげ
0785デフォルトの名無しさん
NGNG下限の次を上限に、上限まで行ったら下限に行くように
ループさせたいのですが、特別なオプションってありませんでしょうか
0786デフォルトの名無しさん
NGNGMSDNのUp-Down Control Stylesをよく見ろ。
0787デフォルトの名無しさん
NGNGリスト部分のウィンドウハンドルを取得する方法はないでしょうか。
GetComboBoxInfo とかだとNULLが返って来ちゃうんですよね。
お昼過ぎからずーっと探してるのですが……。
どなたかご存じでしたらご教授ください。
0788デフォルトの名無しさん
NGNG特にcbSize
0790デフォルトの名無しさん
NGNGMSDN見てないのか?
0791デフォルトの名無しさん
NGNGヘッダファイルや、ソースファイルが、無くても知る方法ありますか?
たとえばdumpbin.exeなどでDLLをダンプしたらわかりますでしょうか??
0792デフォルトの名無しさん
NGNG見当がつくこともある。
#と答えておこう。
0793789
NGNGプラットフォームSDK GetComboBoxInfo関数 のページは見たのですが……
後は、COMBOBOXINFO構造体のページとかは。
まだ始めたばかりでセオリーとか分かってなくて、申し訳なかったです。
0794& ◆FtKQchXwgI
NGNG0795794
NGNG0796デフォルトの名無しさん
NGNG>Pointer to a COMBOBOXINFO structure that receives the information.
>Note that you must set COMBOBOXINFO.cbSize to sizeof(COMBOBOXINFO) before calling this function.
こう書いてなかった?
0797デフォルトの名無しさん
NGNG791です、dumpbin /exports したけど、さっぱり見当がつきません。
どのあたりが見分けるポイントなんでしょうか。
(なかばアキラメモードです....)
0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG791です。
あ、なるほどね。スタックの積み順を調べたらいいんだぁ。
0800779
NGNGファイルの上書き確認ダイアログを表示させたいのです。
あとダウンロードの確認ダイアログはどうするのでしょうか?
次の場所からファイルのダウンロードするように選択しました。
「このファイルを上記の場所から開く」
「このファイルをディスクに保存する」というダイアログのことです。
簡易ブラウザを作っていてなにかダウンロードするときに
このダイアログを出そうと思っています。
0801793
NGNG> hwndCombo コンボボックスのハンドルを渡します。
> pcbi 情報を受け取るCOMBOBOXINFO構造体へのポインタを指定します。
なるほど、MSDN Japanの方だけじゃ情報不足なんですか。
わかりました、今度からはそっちも見に行くようにします。
どうもありがとうございましたです(礼
0802デフォルトの名無しさん
NGNG前者は MessageBox( hWnd, "上書きするよ?", "確認", MB_OKCANCEL | MB_ICONWARNING ); でええやろ。
0803デフォルトの名無しさん
NGNGこれはextern "C"限定の命名規則なのかしらん
0804デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNGOPENFILENAME
OFN_OVERWRITEPROMPT
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG使用したのですが、出力ではなくCGIのソースそのものが取得されてしまいました。
CGIの出力を取得するのは無理なんでしょうか?
0809デフォルトの名無しさん
NGNGもしくは何か勘違いしている。
0810デフォルトの名無しさん
NGNGつhttp://pc5.2ch.net/test/read.cgi/tech/1095534704/l50
0811デフォルトの名無しさん
NGNGブラウザで開いてみそ。
あと、ココとかのURLを入れてみそ。
それでもCGIのソースが出るようだったら、大発明。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGextern "C"をつけていなくても、stdcall関数なら当然、stdcallの修飾(前に"_"、後ろに"@"そしてプッシュするサイズ)は付く。
ただし、C++の修飾を先にしたものにstdcallの修飾がなされる。
0814779, 800
NGNG0815デフォルトの名無しさん
NGNGIEを呼び出せばいいだろ。
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNGLoadImage
0818デフォルトの名無しさん
NGNGLoadImage()では表示は出来ません。
0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNGありがとうございます。確かに表示出来ました。
0821デフォルトの名無しさん
NGNG何のためのワイド文字版APIなの??
0822デフォルトの名無しさん
NGNGUNICODEにしかない文字を書き込んだらどうなる?
0823デフォルトの名無しさん
NGNG0824デフォルトの名無しさん
NGNG積み順じゃなくて、クリアの方法を見ること。
積み順は cdecl も stdcall の同じ。
0825821
NGNG「????」とかに変換される。
唯一のメリットといえば、UNICODE使ったファイル名でもアクセス可能だということだけ…。
でも、*.regファイルなんかは、iniファイルと同じフォーマットでUTF16LEなのに、regedit.exeはAPI使わずに
アクセスしてんのかな?
0826デフォルトの名無しさん
NGNGUnicode版のAPIで.iniファイルに書きこんだら
Unicodeで保存されるべき…。
なるほど、そういう発想はなかったな。
まあ、いろんなアプリがひとつの.iniファイルに
アクセスする可能性があるし、過去との互換性も考えると
ANSIで保存されるのは仕様なんでしょう。
.regファイルの件は何が疑問なのかよく分からない。
0827デフォルトの名無しさん
NGNGDependency Walkerで調べたところ、GetPrivateProfileStringW()を直接呼び出すことはしてなさそうだ。
0828デフォルトの名無しさん
NGNGそれぞれ別のビットマップを貼り付ける方法を教えてください。
0829デフォルトの名無しさん
NGNG.regを読むのに*Profile* APIを使ってるはずだと思ってるんでしょ。
0830デフォルトの名無しさん
NGNG文字処理
0831デフォルトの名無しさん
NGNGなに? WritePrivateProfileStringW 使って
引数にUNICODEの文字列を指定して
書き込んだらSJISに変換されて書き込まれるの?
まさか、引数にSJISの文字列を指定して書き込んでも
UNICODEに変換されないとか言っているわけじゃないよね?
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGレジストリ使うか自前でやれ
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNGレジストリも結局は一緒じゃないか?
REG_SZ型は全てUnicodeで保存されてるはず。
ユーザが意識しなくてもいいことじゃないの?
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG*Private*
AでもWでもファイルはSJIS
レジストリ
Aでb澹でもファイルはUnicode
結論
AでもWでも同じファイルを使えるように設定された仕様
ということでFA?
0841デフォルトの名無しさん
NGNGPROPSHEETPAGE::pfnCallbackで指定したコールバックは呼ばれるのでしょうか?
lParamにページで使うメモリを持たせ、コールバックのPSPCB_RELEASEで解放するようにしています。
0842デフォルトの名無しさん
NGNG呼び出し元で確保したら呼び出し元で開放するのが基本じゃないか?
0844デフォルトの名無しさん
NGNG時と場合による
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG辿らせないようにするにはどうすればいいのか教えてください偉い人。
0847デフォルトの名無しさん
NGNG入力を整数又は小数点にしたいのですが
整数はES_NUMBERで実現できました。
しかしながら整数だけの入力にしてしまいますと
当然ながら少数点の入力ができません。
整数と少数に入力を制限できる方法ってありますでしょうか。
0848デフォルトの名無しさん
NGNG興味本位で訊くんだけど、NTFSはディレクトリのシンボリックリンクを作れるの?
0849デフォルトの名無しさん
NGNG呼称は違うけど、ほぼ同等なものが作れる。
0850デフォルトの名無しさん
NGNGみたいなパスをFindFirstFileで検索掛けると
"ファイルが見つかりません"というエラーが返却されるんですけど、
本当にファイルがないか、それとも、ネットワーク共有名かを判断するAPI
ってないですかね?
0851デフォルトの名無しさん
NGNG少なくとも、
\\127.0.0.1\SharedFolder\*
とかだと検索できるけど。
0852デフォルトの名無しさん
NGNGUNC
0853デフォルトの名無しさん
NGNGPathIsUNCですかね?
なんかいけそうです。有難う御座います。
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG朝起きて一発目のレスがそれかorz
0856デフォルトの名無しさん
NGNGGetWindowTextやGetDlgItemTextでは取得できませんでした。
スピンコントロールをゲットできる関数ってありますでしょうか・・・。m(_ _)m
0857デフォルトの名無しさん
NGNGUDM_で始まるメッセージを調べてみ
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNGIEEE1394のアドレスだけ取れませんでした。
そういうものなのでしょうか。
getmac.exeとipconfig.exeの出力結果も違うし、ググっても
情報が全然ないしで困りました。
0860デフォルトの名無しさん
NGNGWBEM 使うととれるかも。
0861デフォルトの名無しさん
NGNGちなみにスピンコントロールは、アップダウンコントロールと
エディットコントロールの組の事。
856 が GetWindowText で得ようとしたのは
アップダウンコントロールの方のテキストだろうな。
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGこのAPIで取得出来る時刻はどの程度信頼性のあるものなのでしょうか?
ユーザが簡単に調整など出来ないようになっているものなのでしょうか?
0864デフォルトの名無しさん
NGNGコントロールパネルの「日付と時刻」を開いてごらん。
0865デフォルトの名無しさん
NGNG日付と時刻のプロパティが出ました。
これに何かあるのでしょうか?
0866デフォルトの名無しさん
NGNGGetSystemTimeは世界協定時刻(UTC)を取得する関数ではありません。
システム日時をUTCに換算して取得する関数です。
信頼性は、PCの時刻に依存します。
ユーザが、PCの時刻を操作できる権限を持っていれば、変更される可能性があります。
0867863
NGNGという事は殆ど当てにならないという事ですね…
厳密に取得するには、(UTC)が取得できる
信頼性のあるサーバから取ってくるしかないという事ですか。
0868デフォルトの名無しさん
NGNGWindows NT 系だったら、タイムサーバーにアクセスして
時刻を正確に調整してくれるように設定できるよ。
まあ、それもユーザー(あるいは管理者)に任されているわけだけど。
企業内の大きなLAN であれば、タイムサーバー置いてるでしょう普通。
0869デフォルトの名無しさん
NGNGボタン1つ作れないorz
どこがダメなんですか?
0870デフォルトの名無しさん
NGNG#defineIDB_BUTTON1100;
このセミコロンを削除しましょう。
0871デフォルトの名無しさん
NGNG第2引数のiBarにはSB_VERTかSB_HORZを指定するとだけ書いてあり、これらがどういう意味を持つのかさっぱりわかりません。
この二つは何が違うのでしょうか?
0872デフォルトの名無しさん
NGNGttp://msdn.microsoft.com/library/
0873デフォルトの名無しさん
NGNG0874871
NGNG0875デフォルトの名無しさん
NGNG>>872で「SetScrollRange」で検索して上から4番目。
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/_mfc_cscrollbar.3a3a.setscrollpos.asp
ここであってます?
0878デフォルトの名無しさん
NGNG>>872
0879デフォルトの名無しさん
NGNG違う。
あと日本語版のヘルプは肝心な記述が抜けてたりするんで、雰囲気だけ掴むだけにしとけ。
0880871
NGNGMSDNは英語版のほうがよろしいんですかね〜?
なかなかAPIを検索しようにもMFCばっかりで。。
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGそれに>>871は引数から言ってMFCじゃないのか?
あとAPIのSetScrollRangeは使うなっていうことだぞ
0883デフォルトの名無しさん
NGNGプログラミングwindowsという本に載っていた関数なのでAPIだと思うのですが。。MFCなのですかね。。??
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGあるキー(たとえばF1等)が押されたときにそれを感知するにはどうしたらいいですか?
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGコントロールのホットキーは、キーの組み合わせを受け取れるだけの
コントロールであって、その組み合わせを監視するには、DLL作って
フックするしかない。
ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGWM_HOTKEYを使う。
フックなら変更も可能。
0897デフォルトの名無しさん
NGNGWH_GETMESSAGE の場合だけ?
0898デフォルトの名無しさん
NGNG与えられたフォルダのパス以下を全て削除するようなプログラム書きたいんですが
システム権限で動くようにするにはどうしたらいいんでしょ?
0899デフォルトの名無しさん
NGNGHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
もしくは、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
0901でき
NGNG(APIを利用してできるのではと思いこちらに質問しました。)
0902デフォルトの名無しさん
NGNGいくらリファレンスとか WWW の検索かましても
これといったのがないんだけど
とくに各プロセスのファイルアクセスの情報を見たいんだけど
0903デフォルトの名無しさん
NGNG0904902
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNGいやファイルアクセスのことはとりあえず置いといて
最終的に本当にしたいのはファイルとプロセスの関係なんだけどね
0907デフォルトの名無しさん
NGNGNT系ならAPIでファイルハンドルの保持状況を見れないことはないが、フックしたほうが簡単。
0908デフォルトの名無しさん
NGNGメッセージフックじゃファイルアクセスを監視できないと思うけど。
0909デフォルトの名無しさん
NGNGかの sysinternals の FileMon でも VxD 使ってフックかけてるし。
0910902
NGNGまさに filemon みたいなことがしたいわけよ
あれ,どうやってんの?
詳しく詳細きぼん
0911デフォルトの名無しさん
NGNGFileMon はここ。
このサイト、Windows で変なことしようとするとき参考になります。
ttp://www.sysinternals.com/ntw2k/source/filemon.shtml
0912デフォルトの名無しさん
NGNGつーかその動作原理を知りたいのさ
そのサイトに何か書いてあるん?
0913デフォルトの名無しさん
NGNG「コンピュータロック中」ってどういう状態?
0914デフォルトの名無しさん
NGNG見に行きゃいいじゃん。そもそも>909にVxD使ってるって書いてあるし。
0915デフォルトの名無しさん
NGNGWindows "handle table" あたりでググルと別方向からの情報も見つかると思います。
簡単だけれども酷いやり方としては、先方のプロセスにコードをinjectして、
0x0000〜0xFFFFあたりを NtQueryObject で調べてみるとか。
0916909=911=915
NGNG書いてはあるけど、IFSMGR は SDK が高いので簡単には使えないですね。
しかし酷い態度。相手にするんじゃなかった・・・
0917デフォルトの名無しさん
NGNG0918でき
NGNG「コンピュータロック中」とは「Alt」+「Ctrl」+「Del」をおしてするコンピュータロックのことです。
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG文体が丁寧なだけで中身が無いよりも、
必要な内容が全て含まれている崩れた文体の方が好ましい。
0922デフォルトの名無しさん
NGNGそれはそうだ。ただ態度、出方による。
0923909=911=915
NGNG相手の態度がどうであれ関係ないか、
と考え直しますた。
0924デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG善意で答えてくださっているのですから、横柄な質問はやめましょう。
0928デフォルトの名無しさん
NGNGここに居るだけで傷ついてる人はいるけど
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNGそれが大事
0932デフォルトの名無しさん
NGNGヘルプ見たらRegisterHotKey()のすぐ横にあるだろ
0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG0936886
NGNG0937デフォルトの名無しさん
NGNGを切り替えるときに表示内容を変更する場合、表示内容をロード
して(文字位置や、フォントサイズなど)表示を切り替えるのと、
タブごとに異なるビューが存在し、タブを押すことによって表示
が切り替わるのが思いつくんですが、後者のほうは簡単にできる
でしょうか?前者はあまりにも保持しておく情報が多そうなんで
なんかスマートじゃない感じがします。
0938デフォルトの名無しさん
NGNGCreateWindowで作ったウインドウを親ウインドウとして、CreateDialogで
ウインドウにダイアログを貼り付けています。
このダイアログ内のボタンに”標準のボタン”を設定し、見た目は外枠?の
ついた標準のボタンになっているのですが、エンターを押しても実行されません。
マウスでクリックすれば実行できます。
フォーカスとかそういう問題なのでしょうか?
0939デフォルトの名無しさん
NGNG私ならダイアログをはっつけるね。
>>938
そういう問題でしょう。恐らくは、はっついたダイアログにフォーカスが来てないのかと。
0940デフォルトの名無しさん
NGNGエンターの押し下げはモーダルダイアログ用のダイアログプロシージャによって実行されます。
モードレスダイアログでは機能しません。
0941デフォルトの名無しさん
NGNGつまり、ウインドウにモードレスダイアログを貼る方法の場合は、
通常のエンターでのボタン押下はつかえないということでしょうか?
もしどうしても実行したいのであれば、自分でキーイベントを拾う??
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNGありがとうございます。
今は環境がないので後日試してみます。
0944デフォルトの名無しさん
NGNGMSDN見たところどちらも違いがないように思えるのですが。
0945デフォルトの名無しさん
NGNG下記のコントロールはどの様に作るのでしょうか
_______________________
|★ ◎ レイヤー1. |
|★ ○ .////////. | ←フォーカス時の反転は文字の部分(=レイヤーxx)のみ
|☆ ◎ レイヤー3. |
| | ★や◎はアイコンで、クリックすると状態が☆や○に変わる
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
オーナードローかカスタムドローのリストビューかなとは思うのですが、
反転部分が文字部分だけというのが引っかかります。
VCLに似たような物があるとも聞いたので、もしかしたら何か
既成のコモンコントロールがあるのでしょうか?
spy等で調べてみたいのですが、自分ではPhotoshopを持って無く、
また学校のPCにexeを入れると非道く怒られるもので…ひとつよろしくお願いします
0946デフォルトの名無しさん
NGNGMacと共通のインターフェイスですし。
0947デフォルトの名無しさん
NGNG>spy等で調べてみたいのですが、自分ではPhotoshopを持って無く、
>また学校のPCにexeを入れると非道く怒られるもので…ひとつよろしくお願いします
何の学校かにもよるだろうけど、勝手にインストールするんじゃなくて、
目的を伝えて必要性を説明すれば怒られることはないと思われます。
もちろん断られるかも知れませんが。
もしプログラミング技術等を教える学校でありながらそれを断られるようなら、
選んだ学校を間違ったと思ってあきらめよう。
0948945
NGNGぜ、全部自前ですかぁ…。なるほどマルチプラットフォーム。
あれと同じ物を作るのは…気が遠くなりそうですが覚悟を決めることにします。
>>947
あはは、Photoshop入りのPCが他学部の端末な事もあって、
怖じ気づいていました。確かに勉強事に奥手になっちゃ駄目ですね。
お二人ともレスありがとうございました。
0949デフォルトの名無しさん
NGNG> >そのサイトに何か書いてあるん?
大阪っぽい
0950デフォルトの名無しさん
NGNGSetBkColorでは無理でした。。
0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGPSFloatCとかPSViewCとか独自コントロールかな?
WM_USER+αが飛び交っておりました
0955デフォルトの名無しさん
NGNGじゃあ手本を示してみろ。
0956デフォルトの名無しさん
NGNGWM_GETCTLCOLOR*は存在しませんでしたが、ここら辺調べ見ます。
ありがとうございまいました。
0957デフォルトの名無しさん
NGNGVB6で長時間稼動(多分100日とか連続でうごきっぱ)するシステムに
時間を計る部分があって、そこでTimegetTimeのAPIを使用しています。
しかし、ここで、TimegetTimeは連続である一定以上動かないのは周知の事実なのですが、このAPIが返す値が32Bit(VBのLong)を超えた場合、どのような動きになるのでしょうか?
テストするのが一番かとも思うのですが、そこまで時間に余裕がありません。
よろしくお願いいたします。
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGまさかLongの最小値から始まる事は無いと思ってたんですが
これで対策が取れそうです
ありがとうございました〜
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNGDestroyWindow
0962938
NGNGすいません。出来ないです。
VC++のリソースエディタで”標準のボタン”にチェックして、
以下のソースを書くだけではだめですか?
// hWndDlgはダイアログのハンドル
while(GetMessage(&msg, NULL, 0, 0)){
if (hWndDlg && IsDialogMessage(hWndDlg, &msg)) continue;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
0964デフォルトの名無しさん
NGNGダイアログにフォーカスが無いと。
親ウィンドウに WM_SETFOCUS がきたら SetFocus(hWndDlg) してあげてください。
0965デフォルトの名無しさん
NGNGA、BとボタンCを配置して、Aには、「%s,%d」などのフォーマットを
Bには引数リスト「a,b」を入力し、ボタンを押すと
sprintf("%s,%d",a,b);という関数を生成しようとしていますが、
巧くゆきません。引数リストがひとつの文字列となってしまいます。
"a,b"
巧い方法はないでしょうか?
宜しくお願いします。
0966デフォルトの名無しさん
NGNG最大限に意図をくんでみたところで、君には無理だな。
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG引数を分けたいだけなら、sprintfの前で、自分で切り出せばいいのでは?
でも、それでは文字列のままだけど。
可変引数の実装を作りたいなら、vsprintfとかを参考にすればわかります。
文字列から、実変数へ割り当てる仕組みを作るなら、
適当な配列と文字列を対応させる仕組みを作ります。stlのmapとか使えば楽できます。
0970デフォルトの名無しさん
NGNG文字列+変数のような形で出力はできないのでしょうか
printf("私は%d倍バカです",i);
0971デフォルトの名無しさん
NGNGできない
wsprintfなどで、予め文字列を生成しておきましょう
0972デフォルトの名無しさん
NGNG選択できなくなり灰色になるのですが
この灰色を別の色に変えたいのですが
方法ってあります?
0973デフォルトの名無しさん
NGNGある。自分で別の色で塗ればよい。
0974デフォルトの名無しさん
NGNGよく意味わかるな
0975972
NGNG{
//HDC hDC = (HDC)wParam;
HWND hCtrl = (HWND)lParam;
if(hCtrl == GetDlgItem(hDlg, IDC_EDIT))// エディットウィンドウのID
{
//SetBkMode(hDC, OPAQUE);// 背景を塗りつぶし
//SetTextColor(hDC, RGB(255,0,0));// テキストの色
//SetBkColor(hDC,RGB(192,192,192));// テキストが書かれている部分のテキストの背景の色
return (LRESULT)m_hBrush_BkColor;// テキストが書かれていない部分の背景の色
}
break;
}
調べて上記まで分かったのですが
4行目のlParamの値は何を入れればいいのでしょうか。
何度もすみません。
0976デフォルトの名無しさん
NGNG藻前、メッセージを理解してないだろ・・・
0977デフォルトの名無しさん
NGNGそこのセキュリティのタブにある
ユーザを追加する「追加」ボタンを押下した時に表示するダイアログを開くようなAPIって ないっすか?
0978デフォルトの名無しさん
NGNG「4行目のlParam」が何を指しているのかがわからないよ、ママン・・・
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGlParamはもらうだけで、こちらから入れる必要はありません。
0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGどうやって作成するのでしょうか?
(各メニューについている灰色の短形?みたいなののことです。)
0987デフォルトの名無しさん
NGNGユーザー迷惑機能とはこのことだな
バージョン上げるネタに困ってるとしか思えない
0988986
NGNG気になります。
0989デフォルトの名無しさん
NGNGデザインの話じゃねぇの?
もし一部のメニューが非表示になる機能だったら
絶対に止めとけ。使いにくくてしょうがない
0990デフォルトの名無しさん
NGNG考えずに真似したがるやつが絶えないな。
0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1098967135/
0993デフォルトの名無しさん
NGNGオーナードローでボタンを描くと、画面のプロパティで設定するデザイン色次第で
ボタンの色が浮いちゃったりしますが、この辺の整合性を上手く取る方法ってあるんでしょうか?
市販品は結構上手くやっているみたいですが
0994デフォルトの名無しさん
NGNGGetSysColor
0995デフォルトの名無しさん
NGNGXPとかでデザインいじられてるとどうがんばっても浮くので
あえて浮いてもかまわないデザインにする。
0996デフォルトの名無しさん
NGNGやるとしたらGetSysColorで色取って、自分で画像の色置換ですかぁ
XPも色々出来そうで恐いっすねぇ
大人しく地のダイアログごと色固定しちゃおう…
レスありがとうございました
0997デフォルトの名無しさん
NGNGんなことはLoadImageにやってもらえ
0998デフォルトの名無しさん
NGNG>>997
おおブラボー!
これで手間書けずに済みそうです、サンクスです!
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。