Win32API質問箱 Build20
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGただし、最新スレくらいは質問する前に検索してくれ。というかしろ。
過去スレなどのリンクはたぶん>>2-5くらい。
0002デフォルトの名無しさん
NGNGBuild19: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
(★は「いやー ごめんなさい。」に巻き込まれた模様
0003デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/default.asp
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html
- 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
http://usr_vogel.at.infoseek.co.jp/Win32SDK/index.html
WindowsSDK入門
http://kerochan.no-ip.com/vcsdk/letsprog/letsprog-index.htm
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG乙。
0007デフォルトの名無しさん
NGNG土産よろしく。
00084 ◆MwGQyQRf/o
NGNG0009pd32c6c.tokynt01.ap.so-net.ne.jp
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGMSDNに書いてないから、使っていいのかは知らん
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG一つ一つテストプログラムを作っては、コンパイル・テスト
したんですか?
0015デフォルトの名無しさん
NGNGだから藻前もがんがれ。
0016デフォルトの名無しさん
NGNG一つ一つのAPI(関数)専用テストプログラム?
0017デフォルトの名無しさん
NGNGだから藻前もがんがれ。
0018デフォルトの名無しさん
NGNG>SHGDN_FORPARSING以外を指定した場合にエラーになるからだめみたいでですね
そいつを SHGetDesktopFolder で得た IShellFolder で ParseDisplayName してやれば
ITEMIDLIST が得られるような気がするけど。
0019デフォルトの名無しさん
NGNG覚えない。
基本的なところだけはもちろんおさえておくが、
必要になったときにググる。
MSDNを使うよりもググったほうがだいたいは楽。
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGヒマなときに help のキーワード一覧とかをだらーっと見てる。
Path ほにゃらら系みたいな、「自分でも書けるから必要ないんだけどあれば使う」APIとかは
「何かをするのにやり方が分からなくて Google で調べる」みたいな感じじゃ出会えないから。
0022デフォルトの名無しさん
NGNGたくさんあるけど普段使うのはかなり限られてくる。
それにCreateWindowとCreateWindowExみたいにほぼ同じ機能のものも相当あるし、
それとDestroyWindowみたいに対になるものもこれまた相当ある。
0023デフォルトの名無しさん
NGNGWindowsのAPIってようするに単なるライブラリだから、ジャンル分けすればそう多くないんだよな。
0024デフォルトの名無しさん
NGNGつかAPIを直で叩かせずにオブジェクトライブラリにすりゃいいのに。
0025デフォルトの名無しさん
NGNGWinFX
0027デフォルトの名無しさん
NGNGこのスレじゃそれは言っちゃダメ :-)
0028デフォルトの名無しさん
NGNGsubmitイベントをフック(メッセージのフックか?)したいんですが
どなたかやったことありますか?
0029デフォルトの名無しさん
NGNGドットネットとかに変わって今までと何か変わりましたか?
0030デフォルトの名無しさん
NGNGマジっすか。それは(・∀・)イイ!!
>>26
C++はどう?
>>27
(´・ω・`)
0031デフォルトの名無しさん
NGNGレスどうもです、とりあえずはそれでできるのでしょうが、
MSDNにNULL指定についての記述が無いのと
他のフラグでエラーが出る事から見て
「たまたま」動いているという気がしなくも無いので・・・
0032デフォルトの名無しさん
NGNGウィンドウ内しかカーソル非表示にされません。
完全に非表示にするにはどのようにすればいいのでしょうか?
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG勝手なことすんなヴォケ
0035デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGソフ板の例のスレの人か?
マウスフックとウインドウフック入れて
WM_SETCURSORを乗っ取り。
0038デフォルトの名無しさん
NGNGありがとうございます
> ソフ板の例のスレの人か?
多分違う人です
0039デフォルトの名無しさん
NGNGウインドウ内からマウスカーソルがでられないようにする
0040デフォルトの名無しさん
NGNGWindowsSDK入門
http://kerochan.no-ip.com/vcsdk/letsprog/letsprog-index.htm
が見れないのは漏れだけですか?
(´・ω・`)
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG鯖ごと寝ているんじゃないか?
0043デフォルトの名無しさん
NGNGその格子に合わせてMoveWindowでコントロールを配置しようとしていますが巧くいきません。
MoveWindowの引数を論理単位(ウィンドウ)で配置できないからです。
座標を計算しようとして、
POINT pt;
int x = GetDeviceCaps(hdc,LOGPIXELSX);
pt.x = x / 254;
int y = GetDeviceCaps(hdc,LOGPIXELSY);
pt.y = y / 254;
LPtoDP(hdc,(LPPOINT)&pt,2);
とすると微妙にズレが出てしまいます。
ScrollWindowExなどの引数もそうですが、引数がビューポートで指定している関数を使う時、
結果が論理単位になるようにする巧い方法ってありますか?
宜しくお願いします。
0044503です
NGNG0045デフォルトの名無しさん
NGNGお約束だがペゾルド
0046デフォルトの名無しさん
NGNG・Advanced Windows
0047デフォルトの名無しさん
NGNGAPIの入門書なら取り敢えずAPIバイブルの方がいんじゃないかなぁ?
PlatformSDKでもいいけど。
ペゾルドは入門を終えて更にステップアップしたい時に最適な気がする。
0048デフォルトの名無しさん
NGNG猫より2段ぐらい。ネットの文献である程度基礎を掴んでから本買った方が何かと便利な気がする
0049デフォルトの名無しさん
NGNG本は買わなくてもいけるけど、買ったほうがいいのかもしれない。
0050デフォルトの名無しさん
NGNG矩形ごと書き込まれますね(白く浮いてしまう)
文字形状だけを背景に対して上書きする方法を教えてください
(関数名、キーワードだけでも結構です)
よろしくおねがいします
0051デフォルトの名無しさん
NGNG005250
NGNGありがとうございます
天才プログラマーですね、頼もしいです
0053デフォルトの名無しさん
NGNGLRESULT CALLBACK MyHookProc(int nCode, WPARAM wp, LPARAM lp)
{
char str[256];
if (nCode < 0)
return CallNextHookEx(hMyHook, nCode, wp, lp);
if (wp >= 0x30 && wp <= 0x39) {
wsprintf(str, "hMyHook = %d", hMyHook);
MessageBox(NULL, str, "MyHookProc", MB_OK);
return CallNextHookEx(hMyHook, nCode, wp, lp);
}
wsprintf(str, "キー入力はインターセプトされました\n フックハンドル= %d",
hMyHook);
MessageBox(NULL, str, "インターセプト", MB_OK);
return TRUE;
}
これを実行すると
二重で動作するんですがどうしたらよいでしょうか。
0054デフォルトの名無しさん
NGNGWM_KEYDOWNとKEYUP
005553
NGNG此処のDLL処理なんですが
DLLのプロシージャ内でWMメッセージは
取得できるのでしょうか
0056デフォルトの名無しさん
NGNG繊維状態としてLPARAMのLSBで取得できる
0058デフォルトの名無しさん
NGNG必要な時にLoadLibraryでモジュールをロードして、
用件が済んだらFreeLibraryでモジュールをアンロードすると、
タスクマネージャ等で見る所のメモリ使用量は、
モジュールをロードした直後に増えたまま、
アンロードしてもメモリ使用量は低下しません。
また、ダイアログボックス等を使用した場合でも、
EndDialogないしDestoryWindowしても、
メモリ使用量は低下しないようです。
キャッシュのような機構が働いている物と考えられますが、
不要になったメモリを明示的に開放する事は出来ないのでしょうか?
0059デフォルトの名無しさん
NGNGSetWindowLong 関数を呼ぶと、戻り値で判断する限り失敗していないのですが、
設定したプロシージャにメッセージがきません。
どこかで凡ミスしているのかもしれませんが、何か考えられる原因はありますでしょうか?
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGSetWindowLongは自プロセスのウィンドウしかサブクラス化出来ません。
0062デフォルトの名無しさん
NGNG即レス感謝です。
作っているのはDLLでして、ダイアログを生成して、
WM_INITDIALOGがきたところで、SetWindowLogを呼ぶようにしています。
この場合、自プロセス内ということにならないでしょうか?
0063デフォルトの名無しさん
NGNGひょっとしてキー関連のメッセージをキャッチしようとしてる?
もしくはCallWindowProcをちゃんと呼んでる?
006459
NGNGやはり凡ミスでしたOrz
サブクラス化したいリストビューの元々のプロシージャを、
GetWindowLong 関数を使ってWNDPROC型のグローバル変数に保存してたのですが、
自分が設定したプロシージャのプロトタイプの方もWNDPROC型にしていて、
実際の関数本体では
LRESULT CALLBACK MyListViewProc(HWND, UINT, WPARAM, LPARAM)
になっていたので、SetWindowLongからは、
WNDPROC型のプロトタイプの方しか見えてなかったことが原因みたいです。
失礼致しました。
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGshell namespaceを使ってエントリの列挙をすると、
IEも列挙できますよね、しかもコイツBindToObjectが可能なので、
普通に進入できやがります。当然中にはなにも無いのですが。
候補としては
・エクスプローラでやっているように、IEのコンテナになる
・エントリのリストアップをするとき、IEを上手く弾く
の二通りが考えられるのですが、
どちらもIEのクラスIDを認識して特別扱いしないと出来ませんよね?
IEだけならいいのですが、似たようなデスクトップオブジェクトがあると
その都度手動で追加しないといけないのが気分が悪いです。
何か上手く扱う方法って無いでしょうか?
0067デフォルトの名無しさん
NGNGなんでBindToObjectできるんだか、ホント頭にきてます。
#include <windows.h>
#include <shlobj.h>
#include <iostream>
main()
{
CoInitialize(0);
HRESULT hr;
IShellFolder *psf, *pie;
ITEMIDLIST *pidl;
wchar_t *ie=L"::{871C5380-42A0-1069-A2EA-08002B30309D}";
SHGetDesktopFolder(&psf);
psf->ParseDisplayName(0, 0, ie, 0, &pidl, 0);
hr = psf->BindToObject(pidl, 0, IID_IShellFolder, (void**)&pie);
if ( SUCCEEDED(hr) ) {
std::cout << "BindToObject成功" << std::endl;
pie->Release();
}
psf->Release();
CoTaskMemFree(pidl);
CoUninitialize();
}
0068デフォルトの名無しさん
NGNGありえないよね?
アンロードされたって騒いでいる奴がいたもんで。
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGその馬鹿を晒してくれ。笑いが止まらん。
0071デフォルトの名無しさん
NGNG他所でメモリが必要になって初めて解放されるような、定期的に解放されたような
0072デフォルトの名無しさん
NGNGこれの意味がよく理解できないのですが
教えていただけませんか。
0073デフォルトの名無しさん
NGNGどのようにすれば分割できるのでしょうか?
また、それぞれにスクロールをつけることは可能でしょうか?
0074デフォルトの名無しさん
NGNGA1 可能。二つウィンドウを並べる。
A2 当然可能。普通に付ければいい。
0075デフォルトの名無しさん
NGNGで質問したところ、こちら向きの話題だとアドバイスを受けました。
MFCのCComboBoxを使ってコンボボックスを表示させているのですが、
これのCBS_SORT属性を動的に変更することはできないのでしょうか?
具体的には、
1:コンボボックスの中身をクリア
2:SetWindowLongで変更
3:再度追加
という動作をさせたいのですが、どうも動かないようです。
うまい解決法はないでしょうか?
0076デフォルトの名無しさん
NGNG2つウインドウを並べるとはどういうことでしょうか?
具体的に教えてください。お願いします。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGlParamのbit31で、ハンドラが「押し」で呼ばれたか「離れ」で呼ばれたかが判別できるってことだろ。
MSDNのKeyboardProcのページに書いてある。
0079デフォルトの名無しさん
NGNGウインドウを2つ用意すれば、左右に分割されたウインドウができるということですか?
それを、どのように記述すればいいのですか?
よろしくお願いします。
0080デフォルトの名無しさん
NGNGそれが分割ウィンドウに見えるかどうかは藻前次第だ。
がんがれ。じゃあな。
面倒がいやならMFCとか使え。
0081デフォルトの名無しさん
NGNGそれがイヤならMFCでCSplitterWndを使えばよい。まー普通はこっちを
選択するんだろうけど。
0082デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1088140233/73
マルチ
0083デフォルトの名無しさん
NGNG昔はテンプレ3の
- Platform SDK Update
からSDKをダウンロードし、ローカルのHDDに保存できましたが、今は出来なくなったのでしょうか?
Win32APIなどについて調べられたのですが・・・・・
0084デフォルトの名無しさん
NGNGhWnd1 = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW | WS_VSCROLL,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
hWnd2 = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW | WS_VSCROLL,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
とかして、まずWindowを2つ作るということですか?
Windowを2つできたら、その後はどうすればよいのでしょうか?
よろしくお願いします。
0085デフォルトの名無しさん
NGNGできる。少なくともできた。
0086デフォルトの名無しさん
NGNG悪いことは言わない。お前には無理だ。
あ き ら め ろ 。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGMFCのCSplitterWndのソースをパクれば?
少なくとも、こんなところでいちいち説明できるような内容ではない。
008986
NGNGいわゆる分割ウィンドウは、単純にいえば、普通の子ウィンドウのサイズをユーザー操作で
変更できるだけのモノである。
まず、サイズ変更機能を持たない通常の子ウィンドウを配置したウィンドウを作成できるようになれ。
次に、(メニューとか)ユーザー操作を伴わず、子ウィンドウの大きさを計算し変更できるコードを書け。
その後、大きさを変更したいウィンドウ感にそれ用のウィンドウを配置するか、
親ウィンドウを表示するようにし、その部分がドラッグされたときに上記の計算を行え。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNGコントロールのスタイルは、ものによってはCreateWindow時にしか効果が無いものがある。
多分CBS_SORTもその類じゃないかね。解決法としては、いったんコントロールを破棄して、
該当スタイルを有効にして作り直すのが一般的。
0092デフォルトの名無しさん
NGNGまずはテンプレサイトを見るのが作法だと思う。
「猫でもわかる」の117章あたりにそれらしいネタの解説がある。
http://www.kumei.ne.jp/c_lang/sdk2/sdk_117.htm
0095デフォルトの名無しさん
NGNGWin32API で同等の事を行う方法を教えてください。
009683
NGNG1 ローカルプロクシを通さない
2 ActiveXのダウンロードと実行をON
3 IEキャッシュ削除
そして
4 OS再起動
によってダウンロード出来ました。
スレ汚し すみませんでした。
0097デフォルトの名無しさん
NGNGHWNDからコントロールの種類を判別できないですか?
ボタンとかツリービューとか。
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNGGetWindowLongを調べたけどスタイルとかUserDataとかはだめだった
0101デフォルトの名無しさん
NGNG\ありがとう/
λ
0103デフォルトの名無しさん
NGNG他のアプリのテキストの内容を取得しようとしても取得できません。
TreeView_GetItemを使ってるんだけど、用意した文字バッファになにも
入ってきません。
0104デフォルトの名無しさん
NGNG試しに TVM_GETITEM 投げてみ。
0105デフォルトの名無しさん
NGNGhttp://homepage2.nifty.com/Mr_XRAY/Halbow/VCL08.html
0106デフォルトの名無しさん
NGNGありがとう、いまそこ見ながら書いたんだけど動かないです;;
//...HWND hcur; //ターゲットのWindowHandle
HTREEITEM ht = 0;
TVITEMEX ti;
DWORD proid;
HANDLE hProcess;
char* pCommon;
memset(&ti, 0, sizeof(TVITEMEX));
//ターゲットのプロセスにメモリを確保
GetWindowThreadProcessId( hcur, &proid );
hProcess = OpenProcess( PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, proid );
pCommon = (char*)VirtualAllocEx( hProcess, NULL, 256, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE );
//
ht = TreeView_GetRoot( hcur );
ti.mask = TVIF_TEXT;
ti.hItem = ht;
ti.pszText = pCommon;
ti.cchTextMax = 255;
DWORD readb;
TreeView_GetItem( hcur, &ti );
if( !ReadProcessMemory(hProcess,pCommon,ffname,256,&readb) ){
printf( "mem error...\n" );
}
printf( "*** %s ***\n", ffname );
//開放
VirtualFreeEx(hProcess,pCommon,0,MEM_RELEASE);
CloseHandle(hProcess);
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGえっとhcurにはターゲットのTreeViewコントロールのHWNDが入ってるんだけど
其処のプロセスをゲットしてVirtualAllocExは成功しているもよう。
WriteProcessMemoryをやるとRead...できちんと読めた。
hcurがきちんとTreeViewをさしてないのかとも思ったけど
TreeView_Expand( hcur, ht, ...)できちんとツリーは開閉した。
後僕に考えられる原因はTreeView_GetItemに渡すtiの初期化がまずいのかと
思ったが、しかしこれでいいよね… うわーn
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNGTVITEMEX 自体を先方のメモリに取らないとダメじゃないの?
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGですが、APIで制御出来るのでしょうか。可能ならAPI名を教えて下さい。
0113デフォルトの名無しさん
NGNGもともと非アクティブ時にもプロセスは休止しない。
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGなので俺はエクスプローラの優先度をhigherに設定してる。板違いだけど一応。
0116112
NGNGアクティブ如何を気にする必要がなければ特別な記述は不要で、逆にRTSで非
アクティブ時には進行が止まる様なのは、その様な処理を敢えて組み込んでい
ると考えていいのでしょうか?
一定時間毎(?)にGetActiveWindowを発行し、返ったのが自分自身でなければ、
なんて事はやらないですよね(即時性がないですし)。アクティブかフォーカ
ス周りのWM辺りを利用するんでしょうか
0117デフォルトの名無しさん
NGNGそうだよ。
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGSetProcessWorkingSetSizeでどう?
>>68
「勝手に」OSが削除することはないけど
明示的にFreeLibraryすれば解放できるから
おおかた騒いでる奴が参照カウントの管理を間違えたんだろ
0120デフォルトの名無しさん
NGNGDynamic Link ならともかく Static Link では参照カウントなんてないんじゃない?
0122デフォルトの名無しさん
NGNGなくてもあまり困らないとは思うが、Win32ではスタティックDLLの
参照カウントも管理している。起動時は1だから一回FreeLibraryすると
メモリから消え去る(ただしexeは9xだったかNT系だったか忘れたが
どちらかは解放できない)。
意図的な使用例としては自己削除インストーラなんかがたまに使う。
0123デフォルトの名無しさん
NGNG完全に読み間違えてたorz
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGインポートライブラリでDLLを使用する方法を
ロード時動的リンク(Load-Time Dynamic Linking)
実行中に LoadLibrary でDLLを使用する方法を
実行時動的リンク(Run-Time Dynamic Linking)
と言うそうだ。
正確に伝えるためにはきちんと使い分けた方が良いかもね。
C/C++ コンパイラレベルでは
明示的にコード中で LoadLibrary しない限り、呼んだ API
はみんなロード時動的リンクになる。
Cライブラリ等は
スタティックリンク (LIBC)
とロード自動的リンク (MSVCRT)
が選べるね。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG> はみんなロード時動的リンクになる。
/delayloadで実行時動的リンクを選べる
まあ中身は LoadLibrary してるだけなんだが
コード中に明示的に書く必要はなくなる
0129デフォルトの名無しさん
NGNG特定のチェックボックスを無効化or非表示
ってできるのでしょうか?
0130デフォルトの名無しさん
NGNGActiveXを使ってコンポーネント選択してインスコする方式だと6時間経ってもCoreすら終わらなかったので
フルダウンロード( http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm )やったら
2分そこらで終わった。光でよかった・・・
0131デフォルトの名無しさん
NGNG129に絡んで、リストビューの中のチェックボックスをオン、オフしたときに
反応を得るにはどうすればよいのでしょうか?
ずっと悩んでいます、教えてください
0132デフォルトの名無しさん
NGNGlibcなんかは静的共有ライブラリといって、
アドレスのバインドはリンク時に、イメージのバインドはロード時にやるという代物だとか。
apacheモジュール(.so)あたりはDLLと同様の動的リンクらしいね。
0133デフォルトの名無しさん
NGNGやたら多いんだけど彼らはいったい何を考えているんだろう。
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNG以下でMSDNに対する愚見を述べさせてもらう。
MSDNには確かに誤りも存在するし、邦訳版は読みづらい(誤訳を避け、あまりに保守的な訳をしている)が、
英語版は素晴らしい。(ry
0136108
NGNGなるほど、其処まで考えが回りませんでした。ありがとう
…でもTVITEMをターゲットのプロセスに確保してもだめだった(つД;
ターゲットのプロセスをデバッガで見て確保されたエリアにWriteProcess、
ReadProcess... はできていた。だけどやっぱりTreeView_GetItemしても
変化が無い…
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG普通は自プロセスに確保して、適当にフィールドを設定してから相手プロセスの
メモリにコピーする。そしてそのポインタを使って TreeView_GetItem を
呼び出す。文字列バッファのオフセット値が間違ってるとか?
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG先頭に TVITEM をコピーしたとき、ti.pszText のオフセットも変えてる?
文字列専用のプロセスメモリを確保しておくと簡単。
0141108
NGNGTreeViewのGetItemを試したら上手くいきました。
んでそのプロジェクトのTreeViewをコマンドでいじろうとして失敗しました。
以下CUIソース
0142108
NGNGHTREEITEM ht = 0;
TVITEM ti, *pComTi;
DWORD proid;
HANDLE hProcess;
char* pCommon;
memset(&ti, 255, sizeof(TVITEM));
//ターゲットのプロセスにメモリを確保
GetWindowThreadProcessId( hcur, &proid );
hProcess = OpenProcess( PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, FALSE, proid );
pCommon = (char*)VirtualAllocEx( hProcess, NULL, 256, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE );
pComTi = (TVITEM*)VirtualAllocEx( hProcess, NULL, sizeof(TVITEM), MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE );
//
ht = TreeView_GetRoot( hcur );
ti.mask = TVIF_TEXT;
ti.hItem = ht;
ti.pszText = pCommon;
ti.cchTextMax = 255;
DWORD readb = -1;//
0143108
NGNGprintf( "mem error write...\n" );
}
memset(&ti, 0, sizeof(TVITEM));
TreeView_GetItem( hcur, &pComTi );
if( !ReadProcessMemory(hProcess,pComTi,&ti,sizeof(TVITEM),&readb) ){
printf( "mem error...ti\n" );
}
if( !ReadProcessMemory(hProcess,pCommon,ffname,256,&readb) ){
printf( "mem error...\n" );
}
printf( "*** %s ***\n", ffname );
//開放
VirtualFreeEx(hProcess,pComTi ,0,MEM_RELEASE);
VirtualFreeEx(hProcess,pCommon,0,MEM_RELEASE);
CloseHandle(hProcess);
0144デフォルトの名無しさん
NGNGWM_MOUSEWHEELが定義されてなく
ttp://www.asahi-net.or.jp/~uk8t-ktu/wincode/global/0010.htm
ここ見て解決は出来たんだけど
最初から定義されてないものなの?
0145デフォルトの名無しさん
NGNG#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
#define WM_MOUSEWHEEL 0x020A
#endif
0146デフォルトの名無しさん
NGNGここの ffname はローカルバッファとして256バイト割り当て済み?
0147デフォルトの名無しさん
NGNG寝ているメインスレッドを起こしてデータを読み取らせたいのですが
どういったやり方が一般的ですか?
いまはメインスレッドでfor(;;) Sleep(100);しながらフラグを監視してます。
0148デフォルトの名無しさん
NGNG誤: TreeView_GetItem( hcur, &pComTi );
正: TreeView_GetItem( hcur, pComTi );
では?
0149デフォルトの名無しさん
NGNGイベント。
CreateEvent, SetEvent, WaitForSingleObject, MsgWaitForMultipleObjects あたりを調べて。
0150デフォルトの名無しさん
NGNGソートの昇順・降順をあらわす三角印(カラムヘッダに表示されるやつ)はどうやったら表示されるのでしょうか?
自前で描画しないとダメ?
0151デフォルトの名無しさん
NGNG標準じゃついてないな、漏れのはWin2kだけど
0152デフォルトの名無しさん
NGNGCommon Control V6(XP以降)なら可能。
2000以前に対応させようと思ったら、自前で描画する必要がある。
▼▲で誤魔化す手もあるが……。
0154150
NGNGhttp://search.acty-net.ne.jp/mfc_search/archive/2000-2/msg02144.html
これを参考にしてみます。
「カラムヘッダ」「API」「ソートアイコン」とかでググってたので見落としてたようです。(;´Д`)
0155デフォルトの名無しさん
NGNGSDK のドキュメントでは LPTHREAD_START_ROUTINE のリターン後、暗黙的に ExitThread が呼ばれるとありますが
何らかの処理中にメインスレッドから ExitThread を呼んだ場合、適切な後始末が行われないのでしょうか。
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGなるほど問題ないのですか。サンクスです。
因みに CreateThread で作成したスレッドに対してでした。抜けてましたね。すいませんん。
ところで ExitThread て明示的に呼び出す必要があるときってどんな時なんでしょう?
何らかの処理中に ExitThread を呼んだところで直ちにスレッドが終了するわけでは無いし(当たり前ですが)
イマイチ使いどころがわからんのですが…。
0158デフォルトの名無しさん
NGNG大丈夫ッスか?
0159デフォルトの名無しさん
NGNGダメです。
なので、ExitThread()は(余程注意しないと)使えません。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG各ウィンドウに対する処理はどのようにして行うものなんでしょうか。
以前は
1 for文をまわしウィンドウを作成する。
その際、外部で宣言したHWND型配列に各ハンドルを代入させる
2 プロシージャで引数として渡されるハンドルと、
ウィンドウ作成時に用意しておいた各HWND配列から内容の同じものを
探して見つける事で多数作られる中のどのウィンドウなのかを判別し
それに応じて異なる処理をする。
この「どのウィンドウを現在扱っているか」をプロシージャ内で判別する方法が
ややこしいし、なんだかきたないので、
スマートな方法があったら教えてください
根本的に間違っていたら正してやってください
おねがいします
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNGSetProp APIを使ってウィンドウハンドルに対して付加情報をむすびつけておくってのはどうよ?
0164デフォルトの名無しさん
NGNGUNICODE で規定されているスクリプトタイプを調べる API はありますか?
0165デフォルトの名無しさん
NGNGfor 分で Create しつつ登録する仕組みだと、WM_CREATE あたりのメッセージが
発生するときにはまだ登録されていなくて不便です。
なので、WM_NCCREATE を受けた段階で、CREATESTRUCT 経由で渡されたウィンドウを
識別する情報 (CreateWindow時に作っておく) と hWnd のマッピングを生成すると良いでしょう。
163 の言うように SetProp で登録しても良いし、std::map に入れたりしておいても良い。
「この「どのウィンドウを現在扱っているか」をプロシージャ内で判別する方法」は
GetProp とか std::map::operator [] 一発だから、別にややこしくはないと思う。
0166デフォルトの名無しさん
NGNGSetPropなりSetWindowLongなりThunkなりでウィンドウに関連付けて終わり。
0167デフォルトの名無しさん
NGNGありがとうございます
今さらで申し訳ないのですがC++は自分は使えなくて
C言語でやっています
SetProp関数など今まで調べていたのですが
基本的な用語すらちゃんと理解できていないみたいで
具体的にどうすればいいかわかりませんでした
hWndのマッピング という言葉もよくわからないのです
ずうずうしいとは思いますが
相当なアホでもわかるように教えてもらえないでしょうか
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGオブジェクト指向とは関係ない、ただのロジック。
何故C++を使うだけでオブジェクト指向と言いたがるのか、さっぱり理解できない。
0170デフォルトの名無しさん
NGNGマッピングっていうのは、「hWnd から必要な情報への対応表」を作成するということ。
そうして、>>165 の前半でいっているのは、
for (int window_id = 0; window_id < 100; window_id++)
{
my_data_table[window_id].data = hogehoge();
my_data_table[window_id].hWnd = CreateWindow(...);
}
のようにしてしまうと、WM_CREATE の時にはまだ my_data_table[].hWnd が設定されていなくて
不便だから、CREATESTRUCT 経由で(この例だと) window_id を渡して、WM_NCCREATE で
my_data_table[window_id].hWnd = hWnd を実行すると良いよ、っていう話。
0171デフォルトの名無しさん
NGNG自分で調べてどうにかしようって気が無いんだったら、
グローバル変数に入れてって既存の方法使えば?
0172デフォルトの名無しさん
NGNG苦労したんだよ。察してあげな。
0173デフォルトの名無しさん
NGNGJPGを表示させる方法が分かりません・・・
簡単にJPGを扱う方法はありませんか?
0174デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGあとはOleLoadPictureとかLoadImageとか。
ただしいずれもOSバージョンに制限あり。確認汁。
0177デフォルトの名無しさん
NGNGサンクスです
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGJPEG用のモジュールが入っているのがIEなんだが、けっこう知らない人がいるのか。
その他、標準コントロールの拡張機能もIEのバージョンに依存する部分が多い。
0181デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1084697545/
>949 名前:デフォルトの名無しさん[sage] 投稿日:04/06/24 19:06
>今までDLLからウインドウを作ろうなんて考えもしなかったんだけど、
>DLLからCreateWindowをするとき、HINSTANCEにはDLLのインスタンスハンドルを指定するのですか?
>それともWinMainのHINSTANCEを指定すればいいのですか?
>NT系だと無視されるようなので、どちらが正しいかってのがちょっと分からないのですが。
催促ですみません、これわかる人いませんか?
0182167
NGNGわかりました!
ありがとうございます
これで外部変数は使わないで済みます。
SetPropの使い方については自分で勉強しながら確認していこうと思います。
>>168
オブジェクト指向ですか。
もうわからない事だらけでやらなきゃいけないこと
山のようにあるっぽいですが、色々調べて勉強してみます
>>171
一応結構長い時間調べたり、にらめっこしたりしてみたのですが
でもわかりませんでした。精進します
みなさんありがとうございました
助かりました。
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG試したわけじゃないけど、
作ろうとしてるウィンドウがどこにあるリソース(メニューとか)を使うかによるんじゃない?
普通はDLLに使うリソース入れるだろうから、DLLのHINSTANCEだと思うけど。
0185デフォルトの名無しさん
NGNGウィンドウプロシージャの入っているモジュールの hInstance。
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNGレスありがとうございます。
ウインドクラスの場合は>>184で正しいと思うのですが、
CreateWindowの場合、メニューはリソースのIDではなく
メニューハンドルで指定しますよね?
リソースは影響しない気もするのですが、、、。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG現状触れる範囲ではNT環境しかないもので、試せないのです。
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGプログラミングWindowsでは「どっちでも構わんが私はDLLを呼び出した側のインスタンスハンドルを使うことをすすめる」と書いてある。
0193デフォルトの名無しさん
NGNGありがとうございました
0194デフォルトの名無しさん
NGNG今はSetPixelVで点をいっぱい表示したり、
CreateFontで文字サイズを変えたのを1文字を表示する、
方法でやっているのですが、あるなら教えてください。
0195デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG具体的にはWM_ERASEBKGNDである一部分だけ、再描画を停止したいのですが。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG何とかこれを高速化する方法ないでしょうか?
ファイラーとかだとSysListView32のコントロールでも一瞬で表示されてるので、
やりようはあると思うのですが。
0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGあとからSetWindowLongPtrとかやってもだめでした
いまのところ描写とかはうまくいってるのですがボタンであるのにBS_PUSHBUTTONでないと
問題が起きるとこってありますか?
0204デフォルトの名無しさん
NGNGC:\bcc55\Include>grep BS_PUSHBUTTON winuser.h
File winuser.h:
#define BS_PUSHBUTTON 0x00000000L
0205デフォルトの名無しさん
NGNGあ... どうりでふくまれないはずですね
でも電卓とかのボタンをspy++で調べるとBS_PUSHBUTTONがあるのですが
今回作ったプログラムのボタンは、みかけは電卓とかのと一緒なのにふくまれません
なんでだろう...
0206デフォルトの名無しさん
NGNG画像のサムネールや拡大・縮小、なども自作してみたいです。
でもグリッド一つとってもどう実装していいのかさっぱり分かりません。
参考になる本はないですか?
または参考になるソースを入手するにはどうすればいいですか?
0207デフォルトの名無しさん
NGNG02084 ◆MwGQyQRf/o
NGNG0209203.208.86.147
NGNG0210デフォルトの名無しさん
NGNGオーストラリア乙
0211デフォルトの名無しさん
NGNG……楽しんでこいよ。
0212デフォルトの名無しさん
NGNGイベントはキーを押したり、マウスを動かしたり、タイマーの時間が経ったり、
起こった事で、メッセージはそれをOSがプログラムに伝えてくるものかな。
0213デフォルトの名無しさん
NGNGWindowsについてまだ勉強始めたばかりなのですが、
イベント=スレッド間の同期通信
メッセージ=スレッド間の非同期通信
という理解でとりあえずはいいんでしょうか?
0214デフォルトの名無しさん
NGNG全く違う。
イベントってのは、英語の event そのもの。メッセージも message そのもの。
一般名詞であって、そんなに狭い意味を持って使われてるわけじゃない。
Windows の中では、イベントというと
・イベントドリブン型プログラム、という文脈でのイベント。
Windowメッセージのうち、ユーザやシステムから非同期的に発生するもの
WM_LBUTTONDOWN とか。WM_SETFONT などは普通「イベント」とは言わない。
・CreateEvent で作られた同期・排他・待ち合わせ用オブジェクト
・COM オブジェクトからの event sink インターフェイスへの呼び出し。
など諸々。
メッセージは、
・GetMessage や PeekMessage で得られる、ウィンドウメッセージ
・MAPI で転送されるメッセージ
など。
0215デフォルトの名無しさん
NGNGイベント箱にっ
おにぎり おにぎり
チョイと詰めて
あがり コーヒー ゆず さくらっ
0216デフォルトの名無しさん
NGNG今MSDN開けない環境なんでうろおぼえだけど、
リストの更新(追加)時に更新描画をさせないようにするメッセージかなんかがあったはず。
それで描画をOFFにしておけばそこそこ速度が稼げた気がする。
0217デフォルトの名無しさん
NGNGSendMessage(hListView, WM_SETREDRAW, 0, 0);
ここで項目追加
SendMessage(hListView, WM_SETREDRAW, 1, 0);
0218デフォルトの名無しさん
NGNGWIN32APIって何?
0219デフォルトの名無しさん
NGNG32ビット版Windowsが用意している関数群。
Cのライブラリ関数には必要ないけど、Windows用プログラム製作には必要なものが揃っている。
0220デフォルトの名無しさん
NGNG>>3
0221デフォルトの名無しさん
NGNG201じゃないが、いい事を教えてもらった。Thx
0222デフォルトの名無しさん
NGNG必要なくはないだろ。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG名古屋出身かよ!
0225デフォルトの名無しさん
NGNG戻り値
関数が WM_QUIT メッセージを受け取って正常に終了する場合は、メッセージの wParam パラメータに格納されている終了コードを返してください。関数がメッセージループに入る前に終了する場合は、0 を返してください。
と書いてあります
しかし、DirectX9のマイクロソフトのサンプルコードには、
// Initialize Direct3D
if( SUCCEEDED( InitD3D( hWnd ) ) )
{
// Show the window
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
// Enter the message loop
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
UnregisterClass( "D3D Tutorial", wc.hInstance );
return 0;
}
と0を返しています
これでもいいのでしょうか?
0226デフォルトの名無しさん
NGNGINTERNET_OPTION_CONTROL_CONNECT_TIMEOUTとか
設定してみたけど反映されてないっぽいのですよ・・
・・どなたかご存知ないでしょうか?
0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNGWM_DESTROYでPostQuitMessage(0);なんて決め打ちしていたら別に同じ。
それにWinMain(main)の戻り値はWindowsが使うんじゃなくて、ユーザが使うものなんだけど、
ウィンドウズではまず間違いなく使われていない(それに使う手段がないに等しい)から別にいい。
0229デフォルトの名無しさん
NGNGそうなんですか
プログラム終了時に、0が返ってくるとなにかxpとかがカチンと来るのかなと思っていたのですが、
大丈夫なようですね
0230デフォルトの名無しさん
NGNGあーやっぱりだめですか・・。
非同期APIつーのはこの辺ですかね?
http://support.microsoft.com/default.aspx?scid=kb;EN-US;275046
ちょっと、やってみます。
0231デフォルトの名無しさん
NGNGスタートアップルーチンが使ってるってことはない?
0232デフォルトの名無しさん
NGNG少なくとも俺の経験上は、無い。
0233デフォルトの名無しさん
NGNG1ピクセルの画素値を抜き出すのってどのようにすれば可能でしょうか?
よろしくお願いいたします。
0234Windowsマンセー
NGNGレスありがとうございます。
Advanced Windows 3rdを古本屋で手に入れました。
カーネルオブジェクトという観点から綺麗に書かれていて
これ、とても解り易くて良い本です。
よく読んでから出なおしてきます。
0235デフォルトの名無しさん
NGNG何かオプションでも有りませんでしょうか。
そういうの良く見かけますけど全部自分で区切って登録してるのかな?
0236デフォルトの名無しさん
NGNGカンマ区切りって、桁区切り表示のこと?
なら自分で実装するしかない。
0237デフォルトの名無しさん
NGNG0238235
NGNG桁区切りならGetNumberFormatで出来ますし。
0239デフォルトの名無しさん
NGNGライブラリ化しとくと便利かも
ところで、9xでWNetAddConnection2使ってネットワークドライブに割り当てた
Server2003の共有フォルダ(NTFS)を、
9x側がFATって誤認識することがあったんだが、なんか情報持ってる香具師いないか?
9x系全般で再現、同一セグメントで発生した上クライアントPCの環境には特に縛られてない模様で、
再現手順もトリガもまったくわからん状態で困ってるんだが
ローカルディスクならブートレコード読み損なったときにFATと読み違えることも
あるらしい(見たこと無い)が…?
0240デフォルトの名無しさん
NGNG画面に表示する方法を教えて下さい。
0241デフォルトの名無しさん
NGNG2) ファイルの中身を読み出します(バッファ確保注意)
3) テキストウィンドウを作って2)で読んだ中身を放り込みます
0242デフォルトの名無しさん
NGNGすばやいお答えありがとうございます
0243デフォルトの名無しさん
NGNGネットワークドライブの実際のフォーマットを知ってどうしようっての?
何か意味があるとは思えないが
0244デフォルトの名無しさん
NGNG単にNTFSかFATかで区別しているとヤバいかもしれんね。
ちゃんとAPI叩いてればいいんだろうけど・・・
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGmapした領域オーバーしたらメモリ保護エラーだろ
0247デフォルトの名無しさん
NGNG>単にNTFSかFATかで区別しているとヤバいかもしれんね。
そりゃ論外すぎる…
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG>>247
FATと誤認識されたドライブを開いて[新規作成]→[テキストファイル]
…orz
まあ、9xが論外というならそれには激しく同意だが
0250デフォルトの名無しさん
NGNGなにか問題が?
まさか、書込みできないFATを想像してないわけじゃないよね?
0251デフォルトの名無しさん
NGNGひまわりは使える。TTSはしらん。
0252デフォルトの名無しさん
NGNG再現できれば画面さらしてもいいんだが
「"・テキスト"が作成できません。指定されたファイルが見つかりません」とエラーになる。
要は、FATと認識しているにもかかわらず、8.3形式無視した名前付けようとして
勝手にエラーを吐くっぽい
ネットワークドライブ割り当てまでがお仕事で、後は好きに使ってねっつーアプリなんで
こっちとしてはFATだどうだは気にしたくもないわけですが
↑みたいに勘違いしたエラー吐きやがるので
このままではお話になりませんよ、と
0253デフォルトの名無しさん
NGNG●フォーカスがないダイアログ側で、現在のキーの状態が得られません
当方でやりたいことは、任意のキーが押されたらキャンセルしたい
そこで、タイマーをセットしておいて、
::GetKeyboardState(g_kbState); // キーの状態を取得する。
for(mm=0, bCancel=FALSE ; mm<256 && !bCancel ; mm++){
if( mm==243 ) continue;
bCancel = (g_kbState[mm] & 0x80)!=0 ;
}
で、bCancelがTrueか否かをみていますが、常にFALSEです
フォーカスがあれば、大丈夫なんですが・・・
0254デフォルトの名無しさん
NGNGMSDN嫁
>The key status returned from this function changes as a thread reads key messages from its message queue.
>The status does not reflect the interrupt-level state associated with the hardware.
>Use the GetAsyncKeyState function to retrieve that information.
0255デフォルトの名無しさん
NGNG「FATと誤認」してると判断した根拠って何?
なんか妙な勘違いしてるような予感がするんだけど・・・。
0256デフォルトの名無しさん
NGNGこの状況のとき、該当ドライブを右クリックしてプロパティ出すと
ファイルシステム:FAT
になってる。
実際、Office系のファイルを新規作成すると、新規作成ファイルの命名規則が8.3になる
あたりから判断
実際、共有フォルダ内のファイルは開けるので、ドライブの接続が切れてるとかではないっぽいし
0257デフォルトの名無しさん
NGNGつかネットワーク経由でFATとか関係あんのかよ
0258デフォルトの名無しさん
NGNGつか、話がさっぱり要を得ないんで勝手にまとめなおすけど、
(1)2003Serverで共有フォルダを出している。ローカルディスクはNTFS。
(2)9x上でWNetAddConnection2()使ってその共有をネットワークドライブに割り当てた。
(3)そのネットワークドライブ上でファイルを作成すると
「"・テキスト"が作成できません。指定されたファイルが見つかりません」
なエラーが出てファイルが作成できない。
(4)既存のファイルは読める。
(5)Officeでファイル作成すると、名前が8.3形式になっている。
でいいのかな?
ちなみに、ドライブのプロパティに出るファイルシステムは当てにならんと思うよ。
2000からsambaサーバの共有をネットワークドライブに割り当ててるけどNTFSって出るし。
(ちなみにsambaサーバのローカルディスクはsoftupdate付きのFFS)
9xは(V)FATしか知らない(NTFSなんて知らない)から、表示上そう見てるだけでは。
勘だけど、2003Serverの共有か、ドメインorワークグループの設定ミスってる気がする。
0259デフォルトの名無しさん
NGNG関係ないと思ってたんだが…
動作見る限りFAT(それもFAT32とかじゃなくて素のFAT)ドライブでの動作まんまだし
>>258
要領悪くてすんません、そんな感じです
ただ、
>9xは(V)FATしか知らない(NTFSなんて知らない)から、表示上そう見て
の部分だけど、正しく拾えるときはNTFSとちゃんと出る
実際
クライアント再起動かけたりサーバ側セッション削除して再接続かましたりで
復帰した(後者はほぼ五分五分でうまく行くのと行かないのがあった)から
ネットワーク環境っぽいのはぽいんだが…
再現率が恐ろしく低いんで(つまり普段は正常に動作している)
設定周りよりも負荷とかタイミング依存な感じ?
0260デフォルトの名無しさん
NGNGキーボードのボタンを押したことがわかるにはどうやればいいですか?
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG平たく言うとキーロガーを作って{好き|嫌い}な{アノ子|あの糞野郎}に仕込んでやりたいと。
0267デフォルトの名無しさん
NGNG物理的に持って暗くなるのもを探したよ
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGなるほど。あんたスゲーや。
0270デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1087929711/962
0271デフォルトの名無しさん
NGNGうん。俺も思った。
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG少なくともその質問関連のレスはないね
0274デフォルトの名無しさん
NGNG軽く検索したけど、当該スレ内にそれらしき書き込みは一切無し。
その奇妙さと日本語の不自由さを含めて962と260が同一人物との
推測に至りました。
0275デフォルトの名無しさん
NGNG((;゚Д゚) …ゴクリ
0276デフォルトの名無しさん
NGNGあきらめることをお勧めするな、漏れは。
まあ他の職業も無理だろうけど。
0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNGじゃあプログラマじゃなくアインシュタインになれ。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNG>260のようなのは、思考が飛躍するのではなく支離滅裂なので凡人がついていけない。
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNG0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGプ ロ市警が「超法政大学逮捕」乙彼。
ドゥアフォ甲子園
っていうわけだな。
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGのディレクトリだった場合の戻り値が 0x10 なのですが
なんでしょうか?これは
MSDNには Returns TRUE if the file exists, or FALSE otherwise.となっています。
if(PathIsDirectory(...)) でやっておけば問題なしですか?
#define TRUE 0x16 じゃないですよね
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG元々値をintで比較するように設計されてないだろうから!=FALSE(つまり>>307と同じ)でいいんじゃないかな。
サンプルコード書いて試したわけじゃないけど。
0310デフォルトの名無しさん
NGNG確かに紛らわしいけどそこは柔軟に対応してあげて下さい。
0311307
NGNGReturns TRUE if the path is a valid directory, or FALSE otherwise.
まあ同じですが。
>>309,310
なるほど。MSDNの言っているTRUEがVCで定義されているTRUEということではないということですか
気にせず前進といきます どうもです
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNGでも、そうだとすると二つある必要がないですよね
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNGPOSIXサブシステムのためにそーゆー仕様になってるらしい
0316デフォルトの名無しさん
NGNGコントールに、XPスタイルを適用(manifestファイル使用)すると、
チップヘルプがうまく表示されなくなってしまい困っています。
具体的な症状としては、
・アプリケーション起動直後は、正常に表示されます
・コントロールをクリックすると、そのコントロールのチップヘルプが表示されなくなります
・XPスタイルを適用しない場合は、コントロールをクリックした後でも正常に表示されます
解決策・原因等をどなたかご存じないでしょうか。
・開発環境
WindowsXP pro + SP1
Visual C++6.0 pro + SP6 + PlatformSDK
0317デフォルトの名無しさん
NGNGああ・・・なる
0318デフォルトの名無しさん
NGNGそれだけでわかるかよ。
どうやってコントロール作っているのかも書いてないし、TTM_ADDTOOLを送るときの
LPTOOLINFOも書いてないし。manifestファイル中身だってわかんね。
聞くのはいいけど、何がどうなっているのかくらい書いてからにしてくれよ。
0319デフォルトの名無しさん
NGNG0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGメッセージ番号がWindowsが定義したものとかぶらないか心配です。
例えば自分で作るときは5000番台にするとか、そういう決まりごとは
無いんでしょうか。あったら教えてください。
0322デフォルトの名無しさん
NGNGmsdnかどっかに書いてあったと思う
WM_USER+hoge
にすれば確かかぶらない
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGその範囲は、コントロールが使用することがある。
現在は、WM_APP+nが推奨される。
0325デフォルトの名無しさん
NGNGここ嫁
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/MessagesandMessageQueues/MessagesandMessageQueuesReference/MessagesandMessageQueuesMessages/WM_USER.asp
0326デフォルトの名無しさん
NGNG残念、正解はWM_APP+hoge
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGWM_APP through 0xBFFF Messages available for use by applications.
なるほどね。WM_USERはウィンドウクラス用、WM_APPはアプリ用ってことか。
0329デフォルトの名無しさん
NGNG>>326
回答がかぶるのを防止するには何番から使い始めるのがいいでしょうか
0330321
NGNGスレの回転が速い・・・。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGファイルオープンダイアログの中で表示しているディレクトリの中身を
リアルタイムに更新するにはどうすれば良いでしょうか。
標準のダイアログを見てると、何かメッセージを受け取っているようですが
それを受け取れるようにするにはどうすれば良いのかわかりません…
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGNT3.51 SP3 以降
ReadDirectoryChangesW()
2K 以降
SHChangeNotifyRegister()
0337デフォルトの名無しさん
NGNGむしろファイルオープンダイアログをいじるほうが楽だったりして…
0338デフォルトの名無しさん
NGNGで作成し画面に貼り付けたエディットウインドウを
一時的に非表示にしたいんですけど簡単にできますか?
0339デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGまず、その必要を無くせ。
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNGIntegerをByte配列に変換したいのですがAPIのCopyMemoryを使って
Dim data(1) As Byte
Dim a As Integer
a=3000
CopyMemory(data(0),a,2)
とやると明らかに化けた数値がdata()に入ってしまいます
この状態を解消するやりかたをどなたか教えてください
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNG意図がわからん。手元でやってみた限りではdata(0)は184、data(1)は11で、
(11*256)+184=3000。これは別段おかしな動作ではないと思うが?
>>345
VB6のIntegerは2バイトだね。
関係ないけど、VBだとDATAってステートメントじゃなくなってるんだな。
dataって変数名でドキドキしてしまった(笑
0348デフォルトの名無しさん
NGNGすでにいろいろヒントが出てますが、漏れも勝手な類推に基づき、キーワードを提供。
stc32
0349デフォルトの名無しさん
NGNGnamespace std {
#ifdef UNICODE
typedef wstring TSTRING;
typedef wstringstream TSTRINGSTREAM;
#else
typedef string TSTRING;
typedef stringstream TSTRINGSTREAM;
#endif
}
0350デフォルトの名無しさん
NGNGこの方がシンプルじゃないかい?
namespace std {
typedef basic_string<TCHAR> TSTRING;
typedef basic_stringstream<TCHAR> TSTRINGSTREAM;
}
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGんなこたぁない
0354デフォルトの名無しさん
NGNG>129に絡んで、リストビューの中のチェックボックスをオン、オフしたときに
>反応を得るにはどうすればよいのでしょうか?
前に LVN_ITEMCHANGED と書いた者だが。
俺のプログラムでは必ず1つはチェックされている事が必要なので,
LVN_ITEMCHANGING で最後の1つのチェックが外されようとしているか判定していて,
うまく動作している。
お前は LVN_ITEMCHANGED 自体を受信できていないとか書いていたが,
LVN_KEYDOWN とかも受信できていないのか?
0355デフォルトの名無しさん
NGNG0356344
NGNG解決できました
Single aをInt(a)でCopyMemoryに放り込んでいたため
おかしな数値になっていました。
ちゃんとinteger変数に代入してやればうまくいきました
変な質問ですいませんでした
0357デフォルトの名無しさん
NGNGウインドウプロシージャとデータの送受信をするにはどうすればいいのでしょうか?
グローバル変数を使えば楽なんでしょうけど、プロの人はそんなことはしないのかなと
思って。
0358デフォルトの名無しさん
NGNG送受信する相手による。
0359デフォルトの名無しさん
NGNGint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)
{
::Sleep(5000);
return 0;
}
と、コンパイルして実行するとカーソルが砂時計に変わりますが、
カーソルを変化させないようにするにはどうしたらいいのでしょうか?
0361357
NGNGすると思うのですが、プロシージャは引数が決まっているからそういうことは
できないですよね?
0362デフォルトの名無しさん
NGNGで大抵のデータは送れるわけだが。
俺なら同一スレッド内ならウィンドウプロシージャ無視して直接対象ウィンドウを管理してるオブジェクトのメンバ関数呼び出すが。
0363デフォルトの名無しさん
NGNG未確認ですが。。
呼び出し側のCreateProcessのSTARTUPINFOで
STARTF_FORCEOFFFEEDBACKを指定。
0364デフォルトの名無しさん
NGNGCreateWindow()/CreateWindowEx() の最後のパラメータも使ってあげてね♪
やり取りしたいデータのポインタか、その構造体のポインタを渡せば幸せになれるかも。
0365デフォルトの名無しさん
NGNGGetPrinterを使って、PRINTER_ATTRIBUTE_KEEPPRINTEDJOBSの値を調べるところまではできたのですが、
値を設定するにはどうしたらよいでしょうか?
お知恵をお貸しください。
0366デフォルトの名無しさん
NGNG基本的には>>362でいいと思うけど、
WndPrco間の通信はマルチスレッド処理になるから、処理順とか資源管理には気をつけてね。
デッドロックとか分かりにくいバグ引き起こしたりするから。
0367デフォルトの名無しさん
NGNG�dクス!
0368デフォルトの名無しさん
NGNGそんなことこだわるほうが馬鹿のすること
0369357
NGNG>SendMessage(hwnd_dst, WM_APP+α, (WPARAM) length, (LPARAM) pointer)
>で大抵のデータは送れるわけだが。
なるほど。
ありがとうございます。
>俺なら同一スレッド内ならウィンドウプロシージャ無視して直接対象ウィンドウを管理してるオブジェクトのメンバ関数呼び出すが。
すいません。
素人なんでもう少し詳しく教えていただけないでしょうか?
>>368
>グローバル変数使えばいいじゃん
>そんなことこだわるほうが馬鹿のすること
そうなんですか?
自分は所詮素人なんでグローバル変数をがんがん使えばいいのかなという気もしますが・・
プロの人もそうなんでしょうか?
0370デフォルトの名無しさん
NGNGそうして、動くものを完成させるのが、最も重要なことだよ
そんなところで悩んでいたら、いつまで経っても完成しないよ
そのうち、いろいろな方法を覚えてきて、改良を加えればいい話。
0371デフォルトの名無しさん
NGNGCreateWindowでウィンドウつくってその親ハンドルをもとにコードでボタン等を配置するのではなくて、
VBみたいに、ウィンドウ(フォーム)にボタンなどはりつけたウィンドウを、はじめからよべませんか?
リソースでつくってよぶのかと思ったんですが、リソースではダイアログしかつくれないし、
ダイアログだとアイコンが使えないので意図とちがうので。
0372デフォルトの名無しさん
NGNGグローバル変数はアクセスそれ自体は簡単だけど、
データ更新の通知とか内容の有効性とかアクセス排他とか、
外堀をきちんと埋めておかないと意外なところで逆襲食らいがちなので、
一番使い方の難しい手法だったりする。分かっててやる分には勝手だけどね。
専用の仕組みがあるのなら、一見難しいようでもそれを使うのが一番簡単ってのはよくある話。
というのは、必要性があるからこそそういう仕組みが作られてるからで。
単純に++してるだけだと安心してたら、マルチプロセッサにもってった途端に破綻したことあったな。ハハハ
0373デフォルトの名無しさん
NGNG無理。
どうしてもやりたかったらVBからCで作ったDLLを呼び出すとかそういうことを考えてみたら?
0374デフォルトの名無しさん
NGNGそうなんですか。
じゃあ地味にコードかいてコンパイルして表示しては配置を直さないといけないんですね。
0375デフォルトの名無しさん
NGNGアイコンって、CTRL+ALTしたときとかに出てくるアレのことなら、
WM_INITDIALOGあたりでWM_SETICON投げればダイアログにも付けられるけど?
0376デフォルトの名無しさん
NGNGALT+TABだった。冷房入れてくる。
0377デフォルトの名無しさん
NGNGダイアログつったって結局表示さすときの制御の違いなんだから、ダイアログリソースをCreateWindowして
ちょこっと設定してやれば普通のオーバーラップウィンドウとして使えると思うぞ。
0378デフォルトの名無しさん
NGNGお手軽にやるなら、VC++ で MFC 使って CFormView とかでも出来るけど、
見かけだけの問題なら、>>375 のいうようにダイアログで処理するのが簡単。
0379デフォルトの名無しさん
NGNG>ダイアログリソースをCreateWindowして
まさにそれが知りたいのです。どうやるんですか?
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG社長、Windowのクラス化というのをご存じでしょうか?
詳しく話を聞かせるのは面倒なので、自分で調べて。
0382デフォルトの名無しさん
NGNGそれぐらいの知識しかありません。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGちゃうちゃう。そのウィンドウクラスじゃなくて、C++のclass。
ウインドウプロシージャをクラス内で定義することによって、
メンバを色々出来るようにすること。
>383
>〜メンバ関数呼び出すが。
に反応しているからC++だと決めつけていた。
もしCなら、staticとグローバル関数で妥協なんてのもいかが?
0385デフォルトの名無しさん
NGNG構造体だろがC++のクラスだろうがHWNDとの対応関係が必要というのがここまでのお話なんだが
0386デフォルトの名無しさん
NGNGCreateWindowのウィンドウクラス指定のとこにMAKEINTRESOURCE(IDD_DLG)してやりゃいいかと思ってたが、そう甘くなかった。
CreateDialogでできたウィンドウをSetClassLongをつかって背景色やスタイルとかプロシージャを書き換えるといい。
( っ・ω・)っ話
⊂(・ω・⊂ )
漏れもWinMain側で作ったデータをウィンドウプロシージャに使わせようと思って、
調べてるうちにSetProp/GetPropつーAPIを見つけたんだが、これってそういう用途に使っていいものなのか?
このAPIの用途知ってるやつ、教えてください。_|\●__
0387デフォルトの名無しさん
NGNG他には WM_COPYDATA 使え
0388デフォルトの名無しさん
NGNGうほ、SetClassLongなんてAPIあったのか・・・。
Set/GetProp系はHWNDに対して、キーに対応する値を複数セット対応づけられるものらしい。
GWL_USERDATAみたいに単一の値である必要がないので、
VBのプロパティを独自に追加できるような感じで、便利っぽい。
>>387
WM_COPYDATAはプロセス間のメッセージ送信に使う奴だあkら、
プロセス内で使うにはちーとオーバー気味な気がする。
(確か内部的にファイルマッピングオブジェクト使うはず)
0389デフォルトの名無しさん
NGNGサンクスコ。*Propの使い方がわかったよ。英語版MSDNだとどうも感じがつかめなくて、
VBみたいなIDEのプロパティリストをつくるための、特殊なタイプのAPIかと思ってたよ。
0390デフォルトの名無しさん
NGNGC++じゃなくてCオンリーでやっています。
でも、>>385の話だとC++にすれば解決するって問題でもないってことですかね?
0391デフォルトの名無しさん
NGNGその辺と混乱してる人いない?
そもそも質問者がどういうレベルなのかで
回答者達の間で解釈が幾つかに分かれてる気がする。
0392デフォルトの名無しさん
NGNGWinMainはウィンドウを生成するルーチンだけにしたほうがいい。
いろんな初期化とかはWM_CREATEをキャッチしたときにやるべき。
複数のウィンドウにまたがる処理ならデータを渡す方法になやむよりも、
グローバル変数にした方がスマートと思う。
0393デフォルトの名無しさん
NGNGそのウィンドウが専ら関係するデータならWM_CREATEでやるほうがいいけど、
ウィンドウ間にまたがって使用されるような共通性の高いデータであるならWinMainでやるほうが適切。
case by case。
それにグローバル変数には>>372のような問題もあるので、何がいいかは実装次第。
ところで、この話まだ続けるならこっちでやらない?
http://pc5.2ch.net/test/read.cgi/tech/1049790146/
0394392
NGNG>>392の
「複数のウィンドウにまたがる処理ならデータを渡す方法になやむよりも、
グローバル変数にした方がスマートと思う。」
の「データ」というのは「WinMainで作ったデータ」の意です。
言葉足らずでスマソ。
つまり完全に>>383氏に同意ってことです。
それと誘導thx。
0395デフォルトの名無しさん
NGNG>319-320 ですよ。
0396デフォルトの名無しさん
NGNGLoadBitmap()で直接ファイル名を指定すると画像読み込みに失敗してしまいます。
リソーススクリプトを使わずにファイル名で表示させる方法はありませんか?
0397デフォルトの名無しさん
NGNGLoadImage
0398デフォルトの名無しさん
NGNGサンクスです
0399デフォルトの名無しさん
NGNG使ってもいいよ
そのAPIを使っているかはしらないけど、
OLE DnDのドロップターゲットになると
自動で付けられるね。
0400デフォルトの名無しさん
NGNGタスクトレイの辺りで小さく表示されるウインドウを
簡単に作るライブラリとか無いですかね?
CreateWindowとかで毎回小さなウインドウを作ればいいのかな?
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGまたレスキターヽ( ´ー`)ノ
ほんとありがとうございます_|\○_
0403デフォルトの名無しさん
NGNG0404403
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNG内田こねりを無意識にgoogle (・∀・)ホホウ ナカナカ
0408デフォルトの名無しさん
NGNGShellExecute の戻り値を使いたいのです。
0409デフォルトの名無しさん
NGNGShellExecuteの戻り値って、16bit Windowsじゃなきゃ意味ないよ。
って、16bit Windows使ってたらスマソ
0410デフォルトの名無しさん
NGNGレスありがとうございます。
本当ですね。MSDNをちゃんと読んだら書いてありました(汗
一応32ビットでやってるのでShellExecuteの戻り値はエラーチェックにしか使えないわけですね・・・。
戻り値の型だけ見て早合点してしまいました。
不注意ですみません。
初めはCreateProcessで同様のことをやってみようと思ったのですが、取得できるのがPROCESS_INFORMATION構造体でプロセスとスレッドのハンドルとIDってとこでしょうか。
ここからメインウィンドウのハンドルを取得する方法がやっぱりわかりません。
果たしてそんなことは可能なのでしょうか?
0411デフォルトの名無しさん
NGNGShellExecuteEx()を使ってプロセスハンドルを取得。
後はGetProcessId()、EnumWindows()、GetWindowThreadProcessId()の組み合わせ。
0412デフォルトの名無しさん
NGNGアプリケーションエンジニア試験とネットワークのテクニカルエンジニア試験って
どっちのほうを先にやるのが一般的なんですか?
っていうかどっちのほうが簡単ですか?
あほな質問でごめんなさい
0413デフォルトの名無しさん
NGNGお前は吉野家コピペか。
0414デフォルトの名無しさん
NGNGどっちでもいい。
君がとりたい方をとりたまえ。
0415デフォルトの名無しさん
NGNGまぁまぁ。
妥当なスレを見つけられなかったんだろ。
そういきりたつなよ。
0416デフォルトの名無しさん
NGNG便乗質問なんだけど、
GetProcessId()って見つからないのだが、ハンドルからIDを求める方法ってあるの?
>410
CreateProcess()もありなら
>411に追加で、探索範囲が狭くなるけど、EnumThreadWindows()なんてのもある。
0417デフォルトの名無しさん
NGNG汎用的な方法はHWNDに対してグローバルフックしてGetCurrentProcessIdかな
0418417
NGNG2000Pro以降ならNtQueryInformationProcessかな
0419デフォルトの名無しさん
NGNG2つのViewにそれぞれメッセージループを実装することってできますか?
0420デフォルトの名無しさん
NGNGウインドーに書いてある文字以外を使って
プログラムがわかる方法おしえてください
0421デフォルトの名無しさん
NGNGなにから何を導き出したいのか曖昧だぞ。
0422デフォルトの名無しさん
NGNGチャイルドウィンドウが独自のメッセージポンプ(UIスレッド)を持つことは可能ですよ。
でも「Viewにそれぞれメッセージループを実装する」っていう感じではなくて、
別スレッドを作成してそちらでチャイルドウィンドウを作り、そのウィンドウのメッセージを
処理するって形になります。
0423デフォルトの名無しさん
NGNGありがとうございます。
結構面倒そうですね。
0424デフォルトの名無しさん
NGNGというようにファイルに書き込んでいますが、COLORREFはどうやってやられてますか?
あと、COLORREF=RGB(赤,緑,青);としますが、COLORREFから赤だけとか、青だけとかの値を
抽出することってできますか?
0425デフォルトの名無しさん
NGNGそんなやつぁいねえ。
>ファイルに書き込んでいますが、COLORREF
%08x
つか、Win32APIじゃねえな、この質問は。
>COLORREFから赤だけ
Get[RGB]Value
0426424
NGNG>>charはfprintf(fp,"%s",xxx);
>そんなやつぁいねえ。
では、どうしますか?
cout << COLORREF << endl;とか?
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG>>>charはfprintf(fp,"%s",xxx);
>>そんなやつぁいねえ。
>では、どうしますか?
アナタ C シッテマスカ?
fprintf(fp, "%c", xxx);
0430デフォルトの名無しさん
NGNG知人は「L"text" の 'L' じゃね〜の?」って言ってました。
ご存知の方、教ぇてけろ。
0431デフォルトの名無しさん
NGNGやはりWin32を使ったほうがいいのでしょうか?
再生したり、フレームからビットマップを取り出してウィンドウに貼ったり、
そいつをポップアップメニューでいろいろ処理したり、といったことをしたいのですが。
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG用途と、実装者の能力による。
今時DirectXくらいどの言語でも扱えるから、自分の得意なのでやってみればいい。
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGLPTSTR lstrcpy(
LPTSTR lpString1, // address of buffer
LPCTSTR lpString2 // address of string to copy
);
Lは "long"
16ビットWindowsは、ポインタサイズを"near" "long"で区別していた。
32ビットWindowsは区別しない。
0437デフォルトの名無しさん
NGNG頓珍漢な質問にもっと頓珍漢な答えが出来るヤシとそうでないヤシとの差だな。
>>436
nearとの対比ならfarだと思う。
0438デフォルトの名無しさん
NGNGメッセージやマクロや関数を大量に載せてたHPを
見かけたんですが、改めて探すと発見できません。
どこかいいサイト知りませんか?
0439デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGLarge の L じゃないのか(笑)
0442438
NGNG�dクス。
いいところを教えてもらいました。
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNGでもさ、LP〜って型はこういう具合に山ほどあるよ
typedef int INT, NEAR *PINT, FAR *LPINT;
(NEAR/FARはWin32では#defineで消される)
0446デフォルトの名無しさん
NGNGセグメント:オフセットで表記する、1Mバイト空間を指す物理アドレス。
Nearは16bitのポインタで、Win16(16bitプロテクトモード)の普通のポインタ。
なお物理アドレスは「セグメントセレクタ(16bit):オフセット(16bit)」の32bitで表現するので、
リアルモードとの連想でこれをFarポインタと呼んだ。
Longは32bitのポインタで、Win32(32bitプロテクトモード)の普通のポインタ。
Nearを16bit→32bitに拡張したもので、オフセットだけでWin16のFarポインタと同様の
32bit空間を表現できるようになった。「これがNearとFarの区別がなくなった」という言葉の意味。
Win32でも「セグメントセレクタ(16bit):オフセット(32bit)」をFarポインタと呼ぶかもしれないけど、
これは16bitプロテクトモードと違って物理アドレスを意味しないし、用語としても一般的ではない。かも。
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNGこう言う略語の元ネタが分かるサイトってどっかないかなぁ?
MSDNじゃ分からなかったよ(´・ω・`)
0450デフォルトの名無しさん
NGNG略語の元ネタをまとめたサイトは・・・知らないけど命名規則としてハンガリアン記法を使ってるからこの辺が多少参考になるかも。
http://masafumi-t.cool.ne.jp/ready3.htm
# つーか俺の場合intのプリフィックスにはnを使ってるけどなぁ・・・
0451デフォルトの名無しさん
NGNG0452450
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG.NETでは止めたんだけどな。過去の資産には手が回らんらしい。
つか今更弄ったら混乱するだけだと思うぞ。
0455デフォルトの名無しさん
NGNGMicrosoftはサポート対象にしてないが
NT系ならもっと前からNtQueryInformationProcessは使えるけどね
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNG何の冗談かとおもったら、それほんとなのか・・・勉強になった。まとめてみる。
・MZ
DOS用EXEのヘッダ。DOS2.0開発責任者の一人、Mark Zbikowski氏のイニシャルに由来。
・NE
Win16用EXEのヘッダ。New Executableの略。
・LE
仮想デバイスドライバ(VxD)のヘッダ。Linear Executableの略。
・PE
Win32用EXEのヘッダ。Portable Executableの略。
・LX
OS/2用EXEのヘッダ。Linear eXecutableの略?
0464デフォルトの名無しさん
NGNGえらい勉強になったゾ
0465デフォルトの名無しさん
NGNGWinFXでもMZだったりするのかな。
0466デフォルトの名無しさん
NGNG実際のところは単にthis program can't be run in dos modeって出すだけだ罠
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG昔のDOSではMZではなくZMでもOKだった。
0469デフォルトの名無しさん
NGNGEnumWindowでやると余計な者まで一杯出てしまいます。
なんでGetWindowLongでStyleをとってWS_CAPTIONとかで選り抜いてみたんだけど
それでも多いんですよ。これやってる人たくさんいると思うんだけど
やり方を上手くググれませんでした。
たしかCreateWindowしたときにタスクバーに入るかどうかはStyleで
決まってたと思ったけど上のやり方では無いんでしょうか
0470デフォルトの名無しさん
NGNG(親がデスクトップ || NULL) && WS_EX_TOOLWINDOWでない && HIDEされてない
0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG若しくはその逆の変換をしたいと思っています。
しかし、メンバの中にunionが存在するので
普通にコピーしていくだけじゃ駄目な気がします。
この場合はどのようにすればいいのでしょうか。
0473デフォルトの名無しさん
NGNGスクリーン全体のx,y座標になってしまいます・・
ウインドウでのx,y座標を知るにはどうすればいいですか?
0474デフォルトの名無しさん
NGNGどういう基準で判断してるんでしょうか
>>473
ScreenToClient
0475デフォルトの名無しさん
NGNGありがとです
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNGIE4未満を指定すればunionはでてこないし、あっても普通にコピーしていい。
当たり前だけどその後item(or itemex)のpszTextを変換しろよ。
0478デフォルトの名無しさん
NGNGVC++6でデフォルト青文字にて表示させるためのファイルが
あったと思うのですが、配布場所をご存じないでしょうか
確かUser.datとかそんな感じのファイル名だったと思うのですが
0479デフォルトの名無しさん
NGNG0480教えてください
NGNGcase WM_LBUTTONUP:
PlaySound(TEXT("laugh.wav"), NULL, SND_ASYNC | SND_FILENAME);
return 0;
こんなのをつけてみたのですが
外部参照1が未解決です、とエラーがでてしまいます。
laugh.wavをプロジェクトフォルダの中にいれてみたり、デバッグフォルダに
いれてみたり試してみたのですが、うまくいきません。
ウィンドウプロシージャに上みたいなコードを付け加えてlaugh.wavをフォルダに
いれるだけでは、だめなんでしょうか??
VC6.0PROを使っています
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGUserType.dat
0483デフォルトの名無しさん
NGNG少なくともlaugh.wavは無関係。
0484デフォルトの名無しさん
NGNGレスありがとうございます、無事編集済みのを見つけることができました
ひとつ貼っておきますね、ここの人にも感謝しつつ
ttp://www.beginthread.com/Article/dev.null/UserType.Dat/
0485デフォルトの名無しさん
NGNGGetDC、BeginPaint、どちらのHDCから作っても同じのが出来るのでしょうか。
0486デフォルトの名無しさん
NGNGできるけどBeginPaintだとEndPaintまでしか使えないよ
WM_PAINTから抜けたら終わりだよ
0488デフォルトの名無しさん
NGNGGetDCで無問題
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG第四引数LPVOID lpParameterを用いる。
0495デフォルトの名無しさん
NGNG構造体
0496デフォルトの名無しさん
NGNGIEを別プロセスにしていてタスクマネージャ上でも明らかに別プロセスなのに
タスクバー上では同じグループになっているから違うと思います。
0497名無しさん@そうだ選挙に行こう
NGNG0498名無しさん@そうだ選挙に行こう
NGNGhttp://www.microsoft.com/japan/msdn/library/ja/jpdllpro/html/_win32_createthread.asp?frame=true
> 解説
> 1 つのプロセスが作成できるスレッドの数は、利用可能な仮想メモリによって制限されます。
> 既定では、各スレッドに 1MB のスタック空間が割り当てられています。
> そのため、最大 2,028 個のスレッドを作成できます。
> また、既定のスタックサイズを減らすことにより、さらに多くのスレッドを作成することもできます。
0499名無しさん@そうだ選挙に行こう
NGNG0500名無しさん@そうだ選挙に行こう
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0501名無しさん@そうだ選挙に行こう
NGNGだから利用可能な仮想メモリによって制限されます、って書いてるやん
0502名無しさん@そうだ選挙に行こう
NGNG0503名無しさん@そうだ選挙に行こう
NGNGSYSTEMTIMEからの変換でも構わないですが。
ロケール関係でwsprintfで書式化する方法以外を探してます。
0504名無しさん@そうだ選挙に行こう
NGNG0505名無しさん@そうだ選挙に行こう
NGNGサンクスです。でもコレは時間だけしかフォーマット出来ないのか、、、
でも
GetDateFormat(lpsz)
GetTimeFormat(lpsz + lstrlen(lpsz))
で何とかなりそうなので使わせていただきます。
贅沢言えば一発で出来るのが有ると良いんですけど。
0506名無しさん@そうだ選挙に行こう
NGNGフォーマットはどのように指定すればいいのでしょう?
DWORDはunsined long のtypedefのようなのですが、
fprintf(stream,"%lu\n",dw);
としてしまって良いのでしょうか?
でもこうするとtypedefしている意味が無いような気がしますし…
0507名無しさん@そうだ選挙に行こう
NGNG0508名無しさん@そうだ選挙に行こう
NGNGなんで>>498のリンク読まないの?
0509名無しさん@そうだ選挙に行こう
NGNG#define DWF "%lu"
とか定義しておいて、
fprintf(stream,DWF"\n",dw);
ってのはどうよ?
古いコンパイラでは使えないけどナ。
0510名無しさん@そうだ選挙に行こう
NGNGってやればいい
0511名無しさん@そうだ選挙に行こう
NGNG時が止まった
0512名無しさん@そうだ選挙に行こう
NGNG0513名無しさん@そうだ選挙に行こう
NGNG0514名無しさん@そうだ選挙に行こう
NGNGどういうAPIを使えばいいんでしょうか?
CドライブとかDドライブとかいう単位ではなく、
「ディスクの管理」で見られる、ディスク0とかディスク1
とかいう物理的な単位でです。
0515名無しさん@そうだ選挙に行こう
NGNGTEXT("選挙行ったか?") のTEST("")って使わなくてもいいのにみんな使ってるのはなんでですか?
0516名無しさん@そうだ選挙に行こう
NGNG本に書いてあったから。
コードの流用性が上がるから。
めんどい以外の損がないから。
習慣。
なんとなく。
今日はいい電波ですね。
ぬるぽ。
はらへった。
早く帰りてーなあ。
0517名無しさん@そうだ選挙に行こう
NGNG0518名無しさん@そうだ選挙に行こう
NGNGちょっと前の過去ログを読めば、TESTがTypoだと気付くと思うんだが。
0519名無しさん@そうだ選挙に行こう
NGNG関数ですか?
0520名無しさん@そうだ選挙に行こう
NGNG0521名無しさん@そうだ選挙に行こう
NGNG取得する為以下の様にしました。
SHFILEINFO shfi;
::SHGetFileInfo("hoge.txt", 0, &shfi, sizeof(SHFILEINFO), SHGFI_TYPENAME);
しかし、この場合実際に存在するファイルを指定しなければ取得出来無いようです。
その為、一々tempファイルを作成していますがかなり効率悪そうです。
これを何とかして取得出来る様にならないものでしょうか。
0522名無しさん@そうだ選挙に行こう
NGNG#define TEXT(s) L##s
#else
#define TEXT(s) s
#endif
だっけ?
0523名無しさん@そうだ選挙に行こう
NGNG0524デフォルトの名無しさん
NGNG当たり前です。
たとえば、hoge.txtという名前のフォルダが存在できる以上、
実物を見ないと種類は決定できないのは明白でしょう。
0525デフォルトの名無しさん
NGNGってことは、TEXT(lpszHoge)とかやっちゃいけないはずだよね
0526デフォルトの名無しさん
NGNGこんなぼけもいる。
0527デフォルトの名無しさん
NGNGなるほど。しかし拡張子の種類の文字列を取得したいだけなので
実物のファイルがフォルダか否かは関係無いんですよ。
フォルダオプションのファイルの種類なんかどう取得してるんでしょうね。
もっと全然違う取得法が有るんでしょうか?
0528デフォルトの名無しさん
NGNGHKCR参照汁。
0529デフォルトの名無しさん
NGNGレジストリを覗けばいいんでない?
http://www.lhut32.com/page5.html
の下のほうみたく。
0530デフォルトの名無しさん
NGNGだせえじゃん
0531デフォルトの名無しさん
NGNG脳無しのほうがダサダサ
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGSHGFI_USEFILEATTRIBUTESを追加で存在しなくても取得できる
0535デフォルトの名無しさん
NGNG0536514
NGNG物理的な単位はデバイスIDってよぶんですかね。
0537521
NGNG取得出来ました。
SHGFI_USEFILEATTRIBUTESにそんな効果が有るとは盲点でした。
WEBとかMSDNとか見るとファイルの属性を取得するフラグと書かれてるだけですからね。
MSDNは完全に翻訳して理解してたわけじゃないのでアレですが。
0538デフォルトの名無しさん
NGNGWinNT系ならCreateFile()で指定できなかったっけ? APIのマニュアルよく読んでみ。
0539デフォルトの名無しさん
NGNGこいつはまだオーストラリアか?
0540デフォルトの名無しさん
NGNG\\,\PHYSICALDRIVExってやつですね。できそうです。
ありがとうございました。
0541デフォルトの名無しさん
NGNGマジで行ってるのか?
デスマの休憩ぐらいはいいか
0543デフォルトの名無しさん
NGNG05444 ◆MwGQyQRf/o
NGNGいや、約2週間。6/28に日本を出発して
次の日にシドニー到着。2chに書き込むの
忘れてて、7/2にメルボルンで書き込み。
んで、7/10に帰ってきた。>>208の書き込みが
ちょっと、まぎらわしかったね。ゴメソ。
0545デフォルトの名無しさん
NGNG05464 ◆MwGQyQRf/o
NGNG0547デフォルトの名無しさん
NGNG冬ってことは12月くらい?
05484 ◆MwGQyQRf/o
NGNGこれで最後にします。スレ汚しスマソ。
>>547
向こうは北半球なので、日本と完全に逆。
場所にもよりますが、(日本の月+6)%12って
感じで…。1月位の気候かな?
>>545
フリーのPGで、しかもあまり仕事しないので(w
3ヶ月位仕事して9ヶ月遊ぶというような生活を
しているので、身軽です。遊ぶ分しか仕事
しないので、貯金は全然無いです…(;´Д`)
0549デフォルトの名無しさん
NGNGSetWindowLongPtrを使ってWS_THICKFRAMEを追加してサイズ変更できる
ボタンを作ったのですがWS_EX_WINDOWEDGEもいっしょにくっついてきてしまいます
SetWindowLongPtr等をつかってWS_EX_WINDOWEDGEを取り除こうとしたのですがだめでした
WS_THICKFRAMEを自前でエミュレートするのは避けたいのですが方法はありますか?
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNG一年中仕事してるのに貯金が無い人へのあてつけですか?
0552デフォルトの名無しさん
NGNG一年中仕事しているし貯金もないけど、そこそこの生活を維持できた親も養えているから不満はありません。
0553デフォルトの名無しさん
NGNGでも、フリーで貯金無いと、「仕事無し→即あぼーん」だからね…。
かなり、綱渡り状態。会社で働いてて貯金無いのとは、
比べ物にならないと思うよ。
0554教えてください
NGNGPlaySound()を使うにせよmciコマンドを使うにせよ、
wavファイルを再生しようとすると外部参照が解決できません
というエラーがいつもでてしまうのですが、
wavファイルを再生するときは何か事前に設定したりしないと
だめなんでしょうか???
VC++6.0PRO使ってるんですが。
なんなんだ一体???ホゲゲ???
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNG0561教えてください
NGNGmci2.obj : error LNK2001: 外部シンボル "__imp__mciGetErrorStringA@12" は未解決です
mci2.obj : error LNK2001: 外部シンボル "__imp__mciSendCommandA@16" は未解決です
Debug/mci2.exe : fatal error LNK1120: 外部参照 2 が未解決です。
つい最近の同じ質問も私のやつです。
っていうかPlaySound()で解決しないならmciコマンドでやろうと
思ったんだけどやっぱり同じエラーでてまたしても立ち往生です。
外部参照が未解決ってエラーは何をミスってると出るエラーなのかだけでも教えてください
0562デフォルトの名無しさん
NGNG必要なlibをリンクしてない
0563デフォルトの名無しさん
NGNG0564563
NGNG0565教えてください
NGNGwinmm.libというのがその必要なライブラリってことですな??
0566教えてください
NGNGドゥオオオなんだこの本は!
0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNGProgramming Windows
0569デフォルトの名無しさん
NGNGライブラリのリンク法くらい調べたほうがいい。
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNG一応>481も
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG常に最前面に表示されるようになるのは解ったのですが。
常に一番後ろに表示されるようにするにはどうしたらいいでしょうか?
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNGfor(;;)
{
SetWindowPos(hWnd, HWND_BOTTOM, …
Sleep(1);
}
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNGhttp://techtips.belution.com/ja/vc/0014/
0585デフォルトの名無しさん
NGNG>>582
有難うございます
SetWindowPosまでもたどりついたのですが
スレッドを使うとは知りませんでした。
0586デフォルトの名無しさん
NGNG最前面の反対は最背面なんですね
URLまで張ってくれて有難うございます
0587デフォルトの名無しさん
NGNG単に非表示にしても変わらないんじゃね?
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG作ればいいってのはわかったんだけど、
リソースに含めるのは↓のとおりにやっても反映されません。
http://hp.vector.co.jp/authors/VA015850/delphi/tips/etc13.html
ちなみに使っているのはlcc-win32(バージョン3.8)です。
リソースコンパイラもそれに付属のものです。
なんかアドバイスお願いします。
0590デフォルトの名無しさん
NGNGデスクトップを使わない時に表示できればいいので大丈夫です。
>>584さんのリンクを参考(というかそのまま)に
case WM_WINDOWPOSCHANGING:
((LPWINDOWPOS)lp)->hwndInsertAfter=HWND_BOTTOM;
break;
をウィンドウプロシージャに挿入したら上手くできました。
有難うございました
0591デフォルトの名無しさん
NGNGつか、コンパイルエラーはAPIの問題じゃなくて環境設定の問題だから、
このスレの前提を満たしていない。背伸びしないでVC初心者スレあたりで聞きなさいな。
0592デフォルトの名無しさん
NGNGどうもHTMLファイルのアイコンだけが取得出来ません。
SHFILEINFO sfi
SHGetFileInfo("hoge.html", 0, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX | SHGFI_ICON | SHGFI_SMALLICON );
SetIcon(hWnd, sfi.hIcon);
何か足りない処理でも有るのでしょうか。
0593デフォルトの名無しさん
NGNGコンパイルとリンクの区別がついてない人
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG# Build16の368からコピペ
>質問なのですが、
>
>かなりいろんなサイズのフォント作成して、
>TextOutするアプリを作ってて、Win2kまではフツーに動く。
>
>が、
>XPで動かすとTextOut終わってフォントDeleteしても
>仮想メモリが増え続けて、アプリを終わらせないと
>戻らない。(リソースの明示的リークはないと思う)
>
>こんな現象に出くわした人いますか?
激遅れすですが、
これってアジア版XPの仕様みたいです。
回避法はあんまり無いので、バグとしか
思えませんけど。
0596デフォルトの名無しさん
NGNG情報ソースは?
0597595
NGNG開示できるソースは無いです。
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGttp://www.bulldog.co.jp/
0601595
NGNGそのとおりです。
0602デフォルトの名無しさん
NGNGHTMLって事はIEかネスケでそ?
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNG○ウホ
0605デフォルトの名無しさん
NGNGHDCからHBITMAPを作成する事は可能ですか?
方法があれば教えて頂きたいのですが。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGやりたいことを「ちゃんと」書きなさい
0608THE 初心者
NGNGメモ帳でしょうか?また、打ち込んだプログラムをどうやって起動させるのでしょうか?
教えてくださいおねがいします。
えっと、なんかCプログラミングってかいてあります。だからCなのかな?
すっごく初歩の質問ですみません
0609デフォルトの名無しさん
NGNGよそへ行きなさい
0610THE 初心者
NGNG0611605
NGNG例えば、ウィンドウのHDCに転送した画像を
HBITMAPとして確保したいのですが、どうやればいいのでうしょうか?
0612デフォルトの名無しさん
NGNG2.CreateCompatibleBitmap
3.SelectObject
4.BitBlt
0613デフォルトの名無しさん
NGNGこの場合、CreateCompatibleBitmap()で作成したHBITMAPから
生のBit配列は取得可能ですか?
0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNGまあ、こんなもの使っても嬉しくはないわけだが、
HBITMAPから生のって言ったらこれだろ。
0616デフォルトの名無しさん
NGNG0617605
NGNGありがとうございました。
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGgoogle先生に聞いたほうがまとまったいい答えが見つかるよ。
0620デフォルトの名無しさん
NGNG教えなきゃいけなくなっちゃうんだ罠。
0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNG0624589
NGNGなんでだろ〜。
0625デフォルトの名無しさん
NGNG最初に読んだ時なかなかわからなくてかなりへこんだもんだ。
普通ならこれで一冊の本になるぞ、って
0626デフォルトの名無しさん
NGNGもーあの時代には戻りたくねえ・・・。
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGと思っていたのですが、調べ物をしようとしたところ、以下のURLで
アーカイブの閲覧も検索もできなくなっていることにことに気づきました。
http://discuss.microsoft.com/archives/cryptoapi.html
どこかに引越ししたのでしょうか? それとも廃止?
アーカイブはどこかで公開していないのでしょうか?
ちょう有用な情報満載だったので、何とかアーカイブをゲットしたいのですが、
もうだめぽげでしょうか...?
0630デフォルトの名無しさん
NGNG今アクセスしたら普通に見れましたよ。
0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNGスタートページと検索フォームは見れるのですが、
各アーカイブをクリックすると"The archive files could not be accessed..."と表示され、
検索実行すると0件になってしまいます...
0633デフォルトの名無しさん
NGNGだめぽげですか。_| ̄|○
0634デフォルトの名無しさん
NGNG今年の2月第1週以降はリンクすらない事から鑑みるに、
その辺りで終わったんじゃないか?
直接MicrosoftのWebMasterに問い合わせてみては?
0635629
NGNG以下のようなアナウンスがあったのに気づきました。俺って間抜け。
Microsoft will discontinue the CryptoAPI, CAPICOM, Smartcard SDK and
Smartcard DDK mailing lists on Feburary 1, 2004. Support for these areas
will contine on the microsoft.public.platformsdk.security newsgroup.
上記newsgroupでは見慣れたGulu達があまり現れていないみたい。このメールの後に
別メーリングリストを作ろうという動きもあって、今はそっちで活躍しているのかも。
ただ、今までのCryptoAPIメーリングリストはMSの技術者の人が出入りしている点も
魅力だったんだよなあ。
そんなわけで、お騒がせしました。m(_ _)m
0636デフォルトの名無しさん
NGNGインシデント取られるぞ:P
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNGWebPageに対する問い合わせでもインシデント取られるのけ?
とマジレスしてみる:-)
0639デフォルトの名無しさん
NGNG再配置ならShowWindowで一旦全部消して好きな順にSW_SHOWするってサンプルは見つかったんですが……。
現在の並びを取得するってのが見つからなくて。
0640デフォルトの名無しさん
NGNGITaskbarListってのを調べてみましたが、
これもAdd/Delete/Activateしかない模様……。
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNGGUIのメインウィンドウまで閉じて、プロセスが終了してしまうのを防止したいのですが。
どなたか、方法を御存知ないでしょうか。
0643デフォルトの名無しさん
NGNG勘だけど、SetConsoleCtrlHandlerかSetConsoleModeでどうだろう?
0644デフォルトの名無しさん
NGNGBOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
if(dwCtrlType == CTRL_CLOSE_EVENT)
{
FreeConsole();
}
return 0;
}
SetConsoleCtrlHandler(HandlerRoutine, true);
てな具合にやってみたのですが、やはりプロセスが終了してしまいます。
SetConsoleMode は Ctrl+C の無効化には使えましたが、この用途にも使えるなら、
具体的にどう使うのでしょう?
サンプルコードは無いでしょうか。
0645デフォルトの名無しさん
NGNG書き込んでいくのですが、これを保存したいんです。
普通のアプリで保存とかを選ぶと保存の画面がでてきますよね?ファイル名とか
ディレクトリとか選べる画面。あれを表示してオセロのlogを保存するには
どうしたらいいのでしょうか?
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNGFreeConsoleしてもいいんなら最初からさっさとFreeConsoleしちゃえば?
0648デフォルトの名無しさん
NGNGヘルプくらい読めよ。
HandlerRoutine
各コンソールプロセスは、HandlerRoutine 関数の独自のリストを持っています。
最初、このリストには ExitProcess 関数を呼び出す既定のハンドラ関数だけが含まれています。
・・・
コンソール信号を処理するときは、TRUE を返してください。
FALSE を返すと、このプロセスのハンドラのリストに登録されている次のハンドラ関数が使われます。
TRUEの値は何だよ?FALSEの値は何だよ?
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG失礼、ミスりました。
でも結果は同じ。
やはり終了します。
ちなみに、FreeConsole をコメントアウトすると、
ダイアログが現れ、当然「このプログラムを終了できません」となり、コンソールウィンドウのみ閉じること
はできません。
BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
if(dwCtrlType == CTRL_CLOSE_EVENT)
{
FreeConsole();
}
return 1;
}
SetConsoleCtrlHandler(HandlerRoutine, true);
>>647
システムメニューから閉じたいのです。
あるいは、タイトルバーの×印のボタンから。
0653639
NGNG> 強いて言うならウィンドウが最後に表示された順だろうが、
やっぱりないですかね……。
Win+Tabでタスクバーの並び順にタスクバーボタンのフォーカスが移動するから
なんかあるんじゃないかと思ったんですが。
> Explorer落としたりするとかなり好き勝手な順番に変わるからあんま意味ないと思うが。
だからこそ並び順で取得したい訳なんですけど……。
クラス名順でソートとかして使いやすく再配置が実際的な解なのかな。
0654デフォルトの名無しさん
NGNGSetConsoleCtrlHandlerで各パラメータにNULLおよびTRUEを指定して呼び出すと、
呼び出し側プロセスがCtrl+Cシグナルを無視するようになる。
と書いてあるけど。
0655654
NGNG0656デフォルトの名無しさん
NGNGWin+Tabはタスクバーを管理してるエクスプローラ自体が反応するから、
内部的には持ってるんだろうけどね。
ということで、タブコントロールから取得するというのはどうでしょう。
0657デフォルトの名無しさん
NGNGスレ違い。こちらへどうぞ。
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
0658デフォルトの名無しさん
NGNG何がしたいの? ファイルへの出力はGetSaveFileName()じゃできませんが。
0659デフォルトの名無しさん
NGNG某スレでそこらへんの話題が出たのでちょうど調べてた.
w2kでしか確認してないけど,TCITEMのlParamにウィンドウハンドルが入ってる.
xpはどうなのかな?
0660デフォルトの名無しさん
NGNGVerQueryValueを使って文字コードを\VarFileInfo\Translationから取得
すると、800004B0になってしまって、\StringFileInfo\040904E4に
アクセスすることができません。どうすればよいのでしょうか・・・
1 VERSIONINFO
FILEVERSION 5,0,128,0
PRODUCTVERSION 5,2,6,0
FILEOS 0x4
FILETYPE 0x1
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Adobe Systems, Incorporated"
VALUE "FileDescription", "Adobe Photoshop"
VALUE "FileVersion", "5.0.2"
(省略)
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x8000 0x04B0
}
}
0661デフォルトの名無しさん
NGNG素直に別コンソールプロセス立ち上げて名前なしパイプでつなぐとか。
0662639
NGNGXPですが、タスクバーのが
Shell_TrayWnd : ReBarWindow32 : MSTaskSwWClass : ToolbarWindow32
とToolbarに変更されているため、TBBUTTON.dwDataまたはIBBUTTONINFO.lParamがそれっぽいです。
……が、なぜか言うことを聞いてくれません(涙
まずボタン総数を取得すると倍の数値が返ってくるし。
正直Cそのものにあまり慣れてないので、下のに何か胡乱なところがあるんでしょうか?
void Hoge(HWND toolbar) {
int c, i;
TBBUTTON b;
c = SendMessage(toolbar, TB_BUTTONCOUNT, 0, 0);
for (i = 0; i < c; i++) {
if (SendMessage(toolbar, TB_GETBUTTON, i, (LPARAM)&b)) {
printf("%2d : %x\n", i, b.dwData);
}
}
}
0663デフォルトの名無しさん
NGNGタスクバー(エクスプローラ)は別プロセスなのでTB_GETBUTTONで使う
TBBUTONは共有メモリーを使わないとダメ.
0664教えてください
NGNG動画のためにわざわざ別のウィンドウを用意したりしたくなくて、
ウィンドウの隅っこのほうで動画が動くようにしたい。
んで、動画をウィンドウのどこらへんの位置で再生するかを指定
したりする方法ってないですか?
0665デフォルトの名無しさん
NGNG0666教えてください
NGNG一つのウィンドウの中で動画を再生する領域とボタンとかコントロールが
ならんでる領域がわかれているようなウィンドウって
なにか別の方法でないと作れませんか???
0667教えてください
NGNG埋め込んでつくるってことなのかな???
0668デフォルトの名無しさん
NGNGWINDOWで再生するウィンドウハンドルを指定
PUTで位置・サイズ指定
…だったっけ?
0669デフォルトの名無しさん
NGNGそう。その「ボタンとかコントロール」も子ウィンドウなわけだし。
0670デフォルトの名無しさん
NGNGそれでもいいけど、リドローその他の問題考えると MCIWndCreate で親ウィンドウを
指定して、スタイルに WS_CHILD 付けとくほうが良くない?
0671645
NGNGオセロを作っているんですがゲーム中に打った手をlogに書き込んでいくのですが、
そのlogを保存したいんです。
保存ダイアログボックスを表示させてその棋譜を保存したいんです。
0672デフォルトの名無しさん
NGNGOPENFILENAME構造体のメンバ調べた?
ファイル名やフルパス取得できるでしょ。
そのlogの出力処理は自分で書かなきゃダメだよ。
0673645
NGNG開くの場合開きたいファイル名やフルパスを取得できるからその後の処理はできるなぁ
となんとなく分かったのですが、保存の場合がいまいち分かりません・・・。
例えばオセロというフォルダにオセロ本体とlogというファイルがあった場合、
どの関数でlogを見つけてその中身を別名保存できるのでしょうか・・・。
0674デフォルトの名無しさん
NGNGうーん、もう少し頭の中を整理したほうが良いと思うよ。
0675デフォルトの名無しさん
NGNGデータをファイルに保存する処理で必要な条件をきちんと挙げてみな。
取り敢えず、
(1)メモリ上にあるデータをファイルに出力したい。
(2)フォルダとファイル名は保存ダイアログを表示して選択&入力したい。
(3)フォルダに同名のファイルが既にある場合は別名保存したい。
と言う事か?なんか微妙に違ってそうな気もするんだが…
0676デフォルトの名無しさん
NGNG16ビットと32ビットの両方のcomファイルとかも表示したいです
出来ないと思うけどコンソールアプリケーションを起動したときにコンソールを出さないでできたら
またそのやり方もおしえてください
0677デフォルトの名無しさん
NGNGまあオセロの方がまともじゃ(
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNGいや、それは>>646が書いてる。
>>673
もしかして、オセロのexeのパスを知りたい?
なら、GetModuleFileName()。
0680デフォルトの名無しさん
NGNG・オセロのプログラムのコード内で、実行ファイル(たぶん EXE?) のパスを知りたいときには
GetModuleFileName(NULL) を使う。
・実行ファイルと同じ場所にあるファイルのパスを得るには、
PathRemoveFileSpec で最後の「ファイル名」を取り除いてディレクトリのパスを得て、
PathAppend でそのファイルの名前をくっつける。
例えば既に実行ファイルと同じディレクトリに "log" という名前のファイルがあったとき、
それを lpszDstPath にコピーする関数は、
void CopyLogFile(LPCTSTR lpszDstPath)
{
TCHAR rgszLogFile[MAX_PATH];
GetModuleFileName(NULL, rgszLogFile MAX_PATH);
PathRemoveFileSpec(rgszLogFile);
PathAppend(rgszLogFile, "log");
CopyFile(rgszLogFile, lpszDstPath, FALSE);
}
0681デフォルトの名無しさん
NGNG>>645を見るとダイアログを表示してファイルを指定したがってるようだが・・・
0682デフォルトの名無しさん
NGNGダイアログ開く必要ないじゃん。
0683デフォルトの名無しさん
NGNG標準ライブラリは _UNICODE
WindowsSDKでは UNICODE
であっていますか?
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG>コンソールアプリケーションの出力をウインドーズのウインドーにする方法教えてください
GUIアプリケーションとして作り直せ。
>16ビットと32ビットの両方のcomファイルとかも表示したいです
意味がわからん。既存のプログラムの表示方法を変更するという意味なら、
そのプログラムをそのように作り直せ。
>出来ないと思うけどコンソールアプリケーションを起動したときにコンソールを出さないでできたら
>またそのやり方もおしえてください
起動後にFreeConsoleでコンソールを切り離せ。
0686デフォルトの名無しさん
NGNGパイプを作ってそこへ標準出力(必要なら標準エラーも)をリダイレクトさせ、
CreateProcessで対象のコンソールプログラムを起動させる。
(この時に標準出力を継承させる。コンソールを表示させない指定もここでできる)
あとは随時パイプから読み出した文字をウィンドウへ書き出す。
0687デフォルトの名無しさん
NGNG含みを持たせすぎる問いには答えにくい。
UNICODEマクロは、WinAPIのA(ANSI)系とW(WideChar)系を切り替えるマクロ。
_UNICODEマクロは、汎用テキストマッピングで使用する文字の種類を切り替えるマクロ。
これはVC付属のCライブラリの他、MFC等でも使用される。
0689デフォルトの名無しさん
NGNGttp://www.aajp.jp/exev5/speech.swf
adobe reader や narrator.exe みたいに、指定した文字列を
読み上げさせるにはどうすればいいのでしょうか?
0690デフォルトの名無しさん
NGNGTCHARとA/Wは同時切り替えしないとコンパイルエラーになるだろう。
ぶっちゃけ、古いコンパイラとの互換性維持のためにあるんじゃねーの?
0692デフォルトの名無しさん
NGNG互換性維持のくだりは意味不明だけど、両方セットして切り替えるのが普通だろうね。
実際に切り替えるには、そのマクロ以外にもあれこれ変更する必要があるから、
けっこう面倒くさかった記憶がある(スタートアップ関数も変更したな、確か)。
0693690
NGNG_inlineと__inlineとか、_asmと__asmとか、
その辺を想像して書いたんだが…。
0694デフォルトの名無しさん
NGNGwinnt.hのTCHARとかはUNICODEで切り替わる。
_UNICODEで切り替わるのはtchar.hの_TCHAR類。
0696デフォルトの名無しさん
NGNG方法を知らないなら、くだらん回答しなければいいのに
0697デフォルトの名無しさん
NGNGなんとまあパターンどおりの厨房レスなのか。
自分の質問が質問の体を為してないことぐらい気づけよ。
コンソールベースのテストプログラムから脱却してウィンドウを作ってみたいのか、
古いDOSベースのプログラムをWindowsに移植でもしたいのか、意図がはっきりしてないんだよ。サトリ募集中ですか?
字面どおりに解釈するならパイプでも使ってそのプログラムを起動し、出力をとってからDrawStringでウィンドウに出力結果を描画とか。
これで後で「釣れた」とか抜かしやがったらふざけるのも大概にしろって感じだな。
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG上級者ぶって偉そうにしたかっただけなのね。
素直にパイプを使うと答えればいいものを。
0702デフォルトの名無しさん
NGNGビットマップはストックオブジェクトです。
0703ほんたま
NGNGおりはよ、「Slim de Can」を使ってやっとメインウィンドウにコントロールをつけるサンプルの作成に成功したぜ。わはは♪
「Slim de Can」ってすげ〜な〜、イベントドリブンプログラムが作成できるとこまでついに進化したよ。
おりはもう神だね♪どうよ?
http://hp.vector.co.jp/authors/VA015412/
0704645
NGNGオセロの盤面はboard[8][8]の配列を作ってそこに黒、白を書き込んでいく。
それと同時に1手目はd5黒、2手目、・・・・という具合にlogファイルに書き込む。
このlogがなぜあるかというと戻りや棋譜を読むことによってあとで感想戦みたいな
物を実装するためにあります。このlogは常に1個しかなく、上書きされていきます。
保存しておきたい対戦の場合はこのlogをダイアログを表示させ、別名にて保存します。
今分からないのはダイアログを表示させ、保存を押した場合何が保存されるのかが
分からないって事です。
680さんの方法のPathRemoveFileSpecとPathAppendでできるのかな・・・
0705デフォルトの名無しさん
NGNG> 今分からないのはダイアログを表示させ、保存を押した場合何が保存されるのかが
> 分からないって事です。
だからね、保存を押した時に何が保存されるのかは、君が書くコード次第なの。
>>646を実行して、>>672を調べたら、ファイル名とフルパスが取得できるから、
logってファイルをリネームすればいいんじゃねぇの?
と、君以外のみんなが思っている筈なんだが。
0706デフォルトの名無しさん
NGNGなんで前者は分かるくせに後者は分からんのよ?
0707645
NGNGそのコードが知りたかったんです・・・。
ファイルを開くの場合はファイル選択→開く→ファイル名、フルパス取得。
ファイル保存の場合はPathRemoveFileSpecとPathAppend→ファイル名、場所→保存
でいいんですか?
0708デフォルトの名無しさん
NGNGそもそもファイル入出力はやったことがあるのだろうか。
0709デフォルトの名無しさん
NGNG1.GetSaveFileName()を実行する。
2.保存ファイルを指定するダイアログが出る。
3.ユーザーがファイル名を入力する。
4.1で引数として渡したOPENFILENAME構造体からファイル名を取得する。
5.そのファイルに保存する処理は君が書く。
オセロのログを出力するAPIなんてないから、
出力したいフォーマットに合わせて自分でコード書くんだよ。
0710デフォルトの名無しさん
NGNGなんで別名保存する事に躓くんだよ(´・ω・`)
まさかとは思うが、”Log”ってファイルを出力するコードを他人が書いてる
ってオチじゃねぇだろうな?
0711645
NGNG猫でもわかるを買ってよんだんですがいまいち・・・。
いろいろ教えてもらいありがとうございました。
教えてもらったので一度プログラムに組み込んでみます。
0712デフォルトの名無しさん
NGNGそうは思わないか?>>713
0713645
NGNGえーっとLogってのはオセロを起動すると勝手に作られます。
別名で保存するってのは将棋とかと同じく棋譜を集めるためと、
保存した場所からスタートできるようにするためです。
0714デフォルトの名無しさん
NGNGそのLogってのには一手打つ毎に保存されてんの?
もしそうなら、ユーザーに保存ファイル名入力させて
Logファイルをコピーすればいいのでは?
「猫でも・・・」ならネットのSDK編の第329章でも参考にしてみ
0715デフォルトの名無しさん
NGNGムネン アトヲ タノム
orz
0716645
NGNGそうです1手目から60手目まで保存されます。
これを使って感想試合や戻りなどできるようになります。
>もしそうなら、ユーザーに保存ファイル名入力させて
>Logファイルをコピーすればいいのでは?
これができればいいんです。 保存ウィンドウの表示→ファイル名、場所記入→
保存をしてLog1みたいな感じで元のLogがコピーできれば作れればOKです。
0717デフォルトの名無しさん
NGNGきちんと提示しないから話がややこしくなると言うのに。
0718デフォルトの名無しさん
NGNGで、そのソフトがLogってファイルを作るんだけど、そのファイルを
別名保存するアプリを作りたいって話なのか?
単に別フォルダにでもコピーすればいいやん、って気がしてきた…
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNGよくやった。
0722デフォルトの名無しさん
NGNG一昨日のVB6スレと言い今日といい、最近は疲れる奴が多いな…
夏だからか?
0723645
NGNGこれで最後にします。
C書いたオセロではDOSでしか動きません。それをAPIを使って普通に
windowsのアプリに変換というか作るというか。
Cならif文でも使ってLogのコピーをリネームしてすぐ作れますが、
APIを使った時には保存ボタンをクリックしたらどうなるとかそういうのが
分からず困っていたという話でした。
714さんが教えてくれた所は結構参考になりそうなので助かりました。
不愉快になられた方々すみませんでした。またこんな自分に付き合って
くださった方々ありがとうございました。
0724デフォルトの名無しさん
NGNG(クリップボードとかとは全然関係ない単純なメモリ確保です。)
担当者になんで?って聞いたらmallocより効率がいいと
えらい人にいわれたらしい。GlobalReAllocとかも使ってる。
MSDNには低速だから使うなって書いてあるし。
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGヒープメモリってわかってる???
0727デフォルトの名無しさん
NGNG長文ソース簡略化で作業時間、効率を削減。
基本的なWin32システムを支援します。
最強のACライブラリー
ttp://www.geocities.jp/osoftjp
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGユーザーのマウス操作によるものだけと断定して問題ないでしょうか?
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGリアルタイムでレンダリングするスクリーン、キー入力、パラメータ入力用のダイアログがあるので,
CWinApp -> OnIdle() レンダラーアップデート, CChildViewへの描画。
CChildView -> キー、マウス入力
CDialog -> CMainFrm::hoge->SendMessage(...) で入力パラメータを送る。
CMainFrm -> SendMessage(...)でクラス間のデータ受け渡し。
っていう感じでやっているんですが、クラスが保持している別クラスインスタンスへのポインタがprotectedになっていたりするので、SendMessage()のバケツリレーみたいになったりして、2度手間3度手間が多くて疲れます。
「プロはこうやる」っていうのがあったら教えてください。
0732デフォルトの名無しさん
NGNGス レ 違 い だ
0733729
NGNGそんな機能あったですか、、、
やりたいことはサイズ変更中であれ位置変更中であれマウスが動いてたら
WM_MOUSEMOVEが発生して欲しいのですが発生してくれません
正確にいうとspy++上では発生してることになっているのですがWndProc内のswitch文で捕捉されません
spy++のメッセージ コードはPとなっていて、ヘルプによると
PostMessage 関数によってキューにポストされました。
とあるのですがPostMessageで発行されたメッセージはWndProc内では捕捉されないのでしょうか?
0735デフォルトの名無しさん
NGNGおまいさんの最大のミスは
>C書いたオセロではDOSでしか動きません。それをAPIを使って普通に
を最初に言わなかった事だ。お陰で大勢の膨大な時間が
無駄に失われてしまった…
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNGgetDeviceID
0739デフォルトの名無しさん
NGNGデバイスデスクリプタを取得して、
iSerialNumberからストリングデスクリプタのインデックスを計算
iSerialNumberを元にストリングデスクリプタを取得すると、
シリアルナンバーが手に入る・・・と思う
↓のMass Storage参照
http://www.usb.org/developers/devclass_docs
やったことないけど、
DDKのサンプルのUSBView(Win32アプリ)見れば、何とかなるんじゃない?
>>738
デバイスIDとシリアル番号は別物じゃないか?
0740デフォルトの名無しさん
NGNG判定したいのですが、どのようなAPIを利用すれば実現出来るのでしょうか?
USBキーボード二台(もしくはPS2キーボード1台+USBキーボード1台)を使っての入力を想定しています。
0741デフォルトの名無しさん
NGNG0742ほんたま
NGNGおりはよ、「Slim de Can」を使ってあるボタンをクリックしたらある処理を行わせ、別のボタンをクリッしたら別の処理をおこなわせるプログラムの作成についに成功したよ。
つまり「Slim de Can」はすでにイブントドリブンプログラムがつくれる環境になっているということを自ら証明したという次第よ。
おい、「Slim de Can」はすでに簡単なゲームくらいはころっとつくれるぞ。誰かつくらんか?
「Slim de Can」ってすげ〜な〜。
おりはもう神だね♪どうよ?
http://hp.vector.co.jp/authors/VA015412/
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG同僚とうまくいってます?ある程度イメージ化した話が通じる人でないとこの業界ではうまくやれないと思うんですが・・・。
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNG0749729
NGNGspy++のメッセージ コードはPとなっていてこちらはWndProcで捕捉できていました
WM_SIZNG,WM_MOVING直後にspy++上で観測されているWM_MOUSEMOVEだけがWndProcで捕捉できません
spy++が嘘をいってるとしか思えないのですが、WndProcでも補足できる方法はありますか?
0750デフォルトの名無しさん
NGNGGetMessage で取ってきて
・DefWindowProc を呼ばない(メッセージを取り除いちゃうかもしれないから)
・TranslateMessage も呼ばない(同様)
・DispatchMessage もしない(同様)
で試してみた?
0751デフォルトの名無しさん
NGNGいるんじゃないのか?
0752729
NGNGGetMessageで取ってきてCallWindowProcで直接呼び、WM_SIZNGとWM_MOVINGはretun TRUEとし
DefWindowProcを呼ばないようにしたのですがだめでした
>>751
しかしながらspy++はサイズ変更中や移動中であってもWM_MOUSEMOVEを検出できているのですが
ローカルなメッセージループにフックのようなものを仕掛けているのでしょうか?
0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNGそれならファイルマッピング
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG非アクティブ状態のプログラムでどうやってキーの入力を受け取れるのでしょうか?
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG普通にアドレス渡せ
0759デフォルトの名無しさん
NGNG例えばDLLの中の変数をDLLメインで宣言定義して、その変数のポインターを
DLLメインの戻り値でWINメインに渡して使うということですか?
それともそれ以外に便利な方法ありますか?
0760デフォルトの名無しさん
NGNGint var;
int* getvar()
{ return &var; }
//exe.cpp
int* pvar = getvar();
0761デフォルトの名無しさん
NGNG使っちゃいけない話になっているのか?
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGstruct vars { /* 色々 */ };
vars* init() { return (vars*)malloc(sizeof(vars)); }
void func(vars* p) { /*色々*/ }
void term(vars* p) { free(p); }
//exe
vars* p = init();
func(p);
term(p);
とか。
0764デフォルトの名無しさん
NGNGやっぱDLLの中の変数はグローバル変数じゃないと駄目にきまってますよね?
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNGこれはDLLの関数がDLLにあることをコンパイラに知らせる命令ですよね?
0768デフォルトの名無しさん
NGNGちょっとは調べてみないんですかそうですか。
0769デフォルトの名無しさん
NGNGそれが気に入らないんなら、DEFファイルに書いて
変数のエクスポートでも出来ると思うが。
0770デフォルトの名無しさん
NGNGdll
__declspec(dllexport)int a=3;
exe
__declspec(dllinport)int a;
のように使えるとはしりませんでした
しらべてみて分からなかったらまた聞くと思います
いろいろ質問ありがとうございました
0771教えてください
NGNG変える方法はないでしょうか??
どーしても動画と同じウィンドウ内にアレコレ表示したいので
動画を再生する領域をちょっとずらすか親ウィンドウ内に他のものを表示
する空間を空けたりしたいのですが
どうすりゃいいのか途方にくれとりまする助けてえ
0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNGに釣られて、梅。
0775デフォルトの名無しさん
NGNGどうしてくれますか。
0776デフォルトの名無しさん
NGNG( ´,_ゝ`)プッと嘲笑って差し上げます。
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGMoveWindow ではダメですかそうですか。
0779デフォルトの名無しさん
NGNG問題ないはず
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG順番が問題になるのはwindows特有のヘッダのみ。
例えば
×
#include <hidsdi.h>
#include <windows.h>
○
#include <windows.h>
#include <hidsdi.h>
のように。
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNG>>725
やっぱ、Cでは普通のメモリ確保はmallocで決まりですよね。
メモリ確保の他にも、WIN32とランタイムルーチンで対応する関数がある場合に、
好んでWIN32を使う人がいますが、理由を聞くとAPI直接呼んだほうが
効率がいいからということをいいます。これってどこまでほんとうなんでしょうか。
fopenの代わりにCreateFileとか使ってると私は、なんで?と思ってしまうのですが。
0785デフォルトの名無しさん
NGNG普通はHeapAllocする
0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNGネイティブ呼び出しが早いとは限らない。
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNGDirectInput
0791デフォルトの名無しさん
NGNGコンソールプログラムのことを言ってんのか?
おまいは、Windowsプログラマーじゃないだろ。
COMとか、書いたことないのか。C runtime使いたくないんだよ。
Windowsプログラムなら、Win32APIを使うのが普通だろ。
0792デフォルトの名無しさん
NGNGCライブラリを使わないスタイルを否定はしないが、無根拠にそれが普通とかいうと蹴飛ばすぞ。
そういえば、CライブラリのMS固有関数って、このスレの範疇?
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNGこちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1085915001/
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNGC++のも、Cランタイムライブラリに含まれているわけですが・・・
0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNGCはprintf() c++はcoutを使う
0800デフォルトの名無しさん
NGNGそういう意味じゃないって・・・
0801デフォルトの名無しさん
NGNG本体で別のことしてる間も勝手に実行されるマルチスレッドみたいなものですよね?
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGというか>795に意味が含まれてないから誰もコメントできないかと
0804デフォルトの名無しさん
NGNGwinmainの中でもグローバルフックできるんですか?
0805デフォルトの名無しさん
NGNGグローバルフックの場合は本体とフックプロシージャのスレッドは異なるが、
そもそも各スレッドの存在するプロセス空間自体が違うので、
マルチスレッドというよりはマルチプロセスというほうが近い。
>>804
必要な情報さえ集まるのであれば、フックを仕掛けるの自体はどこででも。
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG長文ソース簡略化で作業時間、効率を削減。
基本的なWin32システムを支援します。
>>807 GetAsyncKeyStateもちゃんと乗ってまうs!!!
最強のACライブラリー
ttp://www.geocities.jp/osoftjp
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNGうむ。自分としては、
猫プロ、創プロみたいな、ただソースのページに飛ぶシンプルなのがいい。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG長文ソース簡略化で作業時間、効率を増幅。
基本的なWin32システムを支援します。
>>807 GetAsyncKeyStateもちゃんと乗ってまうs!!!
最強のACライブラリー
ttp://www.geocities.jp/osoftjp
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGあまりにもしつこいので見てみたよ。
結論:使い物にならないクズ。
0817デフォルトの名無しさん
NGNGあぼーんし辛いからコテ使ってくれないかな?
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGみせかけたいのですがどうしたらよいでしょうか
WM_LBUTTONDOWNがきたらSendMessage(hwnd,WM_NCLBUTTONDOWN,HTCAPTION,screenpos)としてるのですが
うまくいきません
0820デフォルトの名無しさん
NGNGttp://www2.wbs.ne.jp/~shingo/programming/vc/vc_tips002.htm
0821819
NGNGWM_NCHITTESTでは適当にHTOBJECTとかでも返して
WM_NCMOUSEMOVE,WM_NCLBUTTONDOWN,WM_MOUSEMOVE,WM_LBUTTONDOWNなどで対応したいのです
WM_NCHITTESTでHTOBJECTを返すと、とりあえずノンクライアント領域と判断されるらしく
WM_NCMOUSEMOVE,WM_NCLBUTTONDOWNなどのノンクライアント領域用メッセージが送られてきてそこで独自の
ヒットテストをおこなっているのですが、それだとボタンコントロールが押された、離されたなどの
処理がされなくなってしまいました.そこでWM_NCHITTESTでHTCLIENT以外だったらHTOBJECTを返し
HTCLIENTだったら素直にHTCLIENTを返すようにしました.そうすると今度はHTCLIENTだった場合に
WM_MOUSEMOVE,WM_LBUTTONDOWNなどのクライアント領域用メッセージが送られてきた時点ヒットテストなどをしなければ
HTCAPTIONだのHTTOPだのと偽れなくなってしまい、このような質問をさせていただきました
非常に文章がわかりずらくなってしまってすいません
0822デフォルトの名無しさん
NGNG>キャプションをドラッグしてるように
と書かれているので、別にキャプションを右クリックして出てくるメニューは必要ない?
もしそうであるなら
WM_LBUTTONDOWNの時にGetCapture(hwnd)でマウスをキャプチャーして
WM_LBUTTONUPされた時にReleaseCaptureしてMoveWindowなどで移動するといいんじゃないかな
0823デフォルトの名無しさん
NGNG少し大きめのアイコン(24×24ぐらい)が表示されるツールバーを作りたいのですがよく分かりません。
IDB_STD_SMALL_COLORをつかって標準ビットマップを使う方法は分かったのですが、
自分で用意した画像を使ったその方法が分かりません。
どなたか教えてください。
(ちなみにツールバーを作る時はCreateWindowExを使っています)
0824デフォルトの名無しさん
NGNG日本語サイトってないでしょうか?
0825デフォルトの名無しさん
NGNG英語嫁ばいいじゃん。
0826デフォルトの名無しさん
NGNGLoadBitmapとか?
0827デフォルトの名無しさん
NGNG>自分で用意した画像を使ったその方法が分かりません、というのは、
ビットマップの大きさを指定する方法がわからないのか、
ビットマップを読み込む方法がわからないのか、
何がわからないのかわからないのか、
そもそも何がわからないんだ。
0828823
NGNG問題はボタンが自分が指定したいサイズより小さいことです。
だからその指定方法を教えて欲しいです。
0829823
NGNGお騒がせしてすいませんでした(汗
0830デフォルトの名無しさん
NGNGよかったよかった
おめでとう
0831819
NGNGすみません
今後HTSYSMENU,HTMINBUTTON,HTMAXBUTTON,HTCLOSEなどのヒットテストにも対応したいと
考えているので、SendMessageなどでメッセージを送るなどして具体的な処理はシステムにお任せみたい
な感じでお願いします.
0832デフォルトの名無しさん
NGNGMSDNでPSDKをDownloadした後
フォルダ削除したら
UnInstallは出来たのですが
ReInstall出来なくなってしまいました
どうすればいいでしょうか?
0833デフォルトの名無しさん
NGNG質問する場所が違いそうなので
こちらで質問するといいと思います
VisualStudio.NET(MSDN Deluxe) Part13
http://pc5.2ch.net/test/read.cgi/tech/1083995297/
0834デフォルトの名無しさん
NGNGなんでそうする必要があるのかかいた方がいいよ。
もっと簡単な実現方法があるかも試練から。
0835デフォルトの名無しさん
NGNG間違えた、こっちかもしれない
スレが落ちてるからageて質問してみてくれ
MSDNサブスクライバ【トラブル解決スレ】
http://pc5.2ch.net/test/read.cgi/tech/1081505326/
0836デフォルトの名無しさん
NGNG元々普通にウィンドウを作成すれば
HTSYSMENU,HTMINBUTTON,HTMAXBUTTON,HTCLOSEなどのヒットテストには対応してるので
具体的な処理はシステムにまかされてます
0837デフォルトの名無しさん
NGNG誘導ありがとうございます
0838デフォルトの名無しさん
NGNGメニューとかエッジとか付いてない窓作って自前でその辺を描画するとかそんな用途なんでは無かろうか。
まぁ、834への解答次第か。
0839819
NGNGGUIライブラリみたいな物を作ろうとしていて将来的にはクロスプラットフォームなものにしたいと
思っています.既存のクロスプラットフォームGUIライブラリ代表としてfox toolkitをすこし調べたのですが
HitTestに対応するものがないように思えます.ここから勝手な想像なのですが、XウィンドウシステムでHitTestなど
の処理をするのはかなり面倒だからHitTestがないと推測しました.
そのような処理のむずかしいものをひとつのイベントとして定義するより引数として渡すほうが
いいと判断しました.
具体的には
struct mouse_eventargs:base_eventargs
{ unsigned int button,hittest; long x,y; };
こんな感じのものを参照渡しでユーザー定義のコールバック関数に渡しその中で
ユーザーがhittestにキャプションや最大化ボタンやサイズ変更境界などを表す定数を
代入して偽るみたいな感じなのですがWM_NCMOUSEMOVEなどのノンクライアント領域用と
WM_MOUSEMOVEなどのクライアント領域用のメッセージは同じコールバック関数onMousemoveを
呼び出す形になっています.そこでクライアント領域用のメッセージでもヒットテストなどを
してやることが必要になってしまいました
>>836
そのはずなのですが819のようにデフォルトのHitTestがHTCLIENTと判定しWM_LBUTTONDOWNが送られ
てきたところでSendMessage(hwnd,WM_NCLBUTTONDOWN,HTCAPTION,screenpos)としてもキャプションを
操作してることにはなってくれませんでした
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNGを
SendMessage(hwnd, WM_NCHITTEST, HTCAPTION, screenpos)じゃだめ?
0844デフォルトの名無しさん
NGNGRegisterClassで登録したウィンドウクラスを使うためには第一引数で同じ文字列を入れなくてはいけないってこと
0845デフォルトの名無しさん
NGNGグラシアス
0846デフォルトの名無しさん
NGNG間違ってはいないが限定しすぎ。
本来的には、似た機能のウィンドウを複数作る時に手間を省くためにある。
WindowClassはウィンドウの型紙で、CreateWindowは型紙を元にウィンドウを作る。
BUTTONあたりはシステムで型紙用意してくれているのでそれ使ってCreateWindowすればいいし、
1から自分でウィンドウ作るなら自作のWindowClassをRegisterClassで登録してCreateWindowする。
システム製でも自作でも、型紙部分は一度登録しておけば何度も使いまわせる。
C++知ってるなら、WindowClassは文字通りウィンドウのクラスで、
CreateWindowはそのクラスのインスタンスを作るもの、と思えば分かりやすいかも。
(この場合のインスタンスはHINSTANCEとは別の概念だから間違うなよ)
0847デフォルトの名無しさん
NGNGメルシー
0848819
NGNG>>840
ちがいますよ(w
>>843
WM_LBUTTONDOWNがきたら
CallWindowProc(c->defwndproc, c->handle, WM_MOUSEACTIVATE, 0, MAKELPARAM(HTCAPTION,WM_LBUTTONDOWN));
としたらできました.
レスしてくださった皆さんありがとうございました
0849819
NGNGcase WM_NCHITEST:
return HTCAPTION;
を消し忘れてただけでした.............
0850デフォルトの名無しさん
NGNG>>820
0851デフォルトの名無しさん
NGNG仮想キーコードを文字として表示したいのですが、
どうやって変換すれば良いのでしょうか?
0852デフォルトの名無しさん
NGNGsprintfで文字列に変換して表示すれば?
0853デフォルトの名無しさん
NGNGじゃなきゃMapVirtualKey
それ以外のキーを文字で表示したくて
LPARAMが使えるならGetKeyNameText
駄目なら自分でマップ
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG&
0856デフォルトの名無しさん
NGNGもうちょっとヒントください
お願いします
0857デフォルトの名無しさん
NGNG&で解らないならC言語を一からやり直すべき
やってないならCをやるべき
0858デフォルトの名無しさん
NGNGCもアセンブラもやったけど分かりません
教えてください
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNGbool isNbitOn(unsigned lParam, unsigned n)
{
return (lParam >> n) & 1;
}
0861デフォルトの名無しさん
NGNGNビット右にシフトして一番下のビット以外を0にするということですね
僕の考えでは0000100000みたいな2進数が使えないから出来ないと思ってましたが
そういう頭のいいやり方があったんですね
0862デフォルトの名無しさん
NGNGサブクラス化してWM_PAINTを乗っ取りたいのですが、
このときコントロールを描かせるためCallWindowProcで元のwndprocを呼び出した後
BeginPaint等をしても、当然更新領域が空なので描画可能なHDCが取得できません。
このばあい、GetDCして独自の絵を上書きするのが正しいのでしょうか?
0863デフォルトの名無しさん
NGNGいや、0000100000(何ちゅービット数だ)を作りたいだけなら 1 << 5 でいいんだけどね。
ビットチェックの場合は0/1にした方がboolとして扱えるから。
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNGそれも頭のいい考え方ですね
あとすこしで電卓もって10進数に変換するところでした
0867デフォルトの名無しさん
NGNG・VC++を使ってテンプレートよりWindowsの標準的なアプリケーションを作成
・そのままビルドして実行
実行直後のメモリ使用量は4MB程度で、最小化すると300KB程度まで減少、
再度表示させると1.2MB程度になってるわけで、こいつはなぜでつか?
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG「仮想メモリサイズ」を表示させてみれ。
0870デフォルトの名無しさん
NGNGLRESULT CALLBACK Age( HWND ...
LRESULT CALLBACK Sage( HWND ...
LRESULT CALLBACK Hoge( HWND ...
typedef LRESULT CALLBACK ( *HogePtr )( HWND, UINT, WPARAM, LPARAM );
const HogePtr HogeHagePtr[ ] = {
Age, Sage, Hoge,
}
のように関数ポインタにしようとするとエラーが出てしまいます。
どうすればいいんでしょうか?
0871デフォルトの名無しさん
NGNGtypedef LRESULT (CALLBACK *HogePtr )( HWND, UINT, WPARAM, LPARAM );
の間違いじゃね?
0873デフォルトの名無しさん
NGNGいろいろなサイトを見てみると破棄しろという記述を見ますが個人的にはしてはいけないような気がします。
理由は、MSDNに書いて有るSHGetFileInfoのSHGFI_ICONの説明で
> Retrieve the handle to the icon that represents the file and the index of the icon within the system image list.
とある為です。
システムイメージリストのアイコンなら削除してはいけないと思うのですが。
0874デフォルトの名無しさん
NGNG報告ごくろう。
下がってよいぞ。
0875デフォルトの名無しさん
NGNGすべき。つーかしろ。
こうも書いてあるが。
>The handle is copied to the hIcon member ・・・
このコピーは単なるコピーじゃなくてCopyIcon/CopyImageのコピー。
それにDestroyIconしろって下の方にあるし。
0876デフォルトの名無しさん
NGNGあー、MSのサイトには確かにそう書いて有りますね。
もってるMSDNは古いのか書いてませんでした。
Thx.
0877デフォルトの名無しさん
NGNG> The handle is copied to the hIcon member of the structure specified by psfi,
> and the index is copied to the iIcon member.
前者のcopiedと後者のcopiedの意味が違うなんて罠だ。普通、わからんぞ。
0878デフォルトの名無しさん
NGNGwParam == NULL なら BeginPaint で HDC を取得
SaveDC
CallWindowProc で元の WndProc を呼ぶ (wParam に HDC を入れる)
RestoreDC
追加の描画をする
EndPaint (BeginPaint を呼んだ場合)
return
0879デフォルトの名無しさん
NGNGファイルの作成とライトをしようとしています。
APIを使って実現するにはどうしたらいいですか?。
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGライトって見たら電気を思い出す低級魔術師でした
0883デフォルトの名無しさん
NGNGフォルダって何だ?
0884デフォルトの名無しさん
NGNGWNetAddConnection()
WNetAddConnection2()
WNetAddConnection3()
とか?そういう話じゃない?
0885デフォルトの名無しさん
NGNGCreateFile("\\\\コンピュータ名\\共有フォルダ名\\残りのパス"ってできない?
0886デフォルトの名無しさん
NGNG選択用のDCを作らずに幅を取得、または計算する方法ないでしょうか?
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNG穏やかにいきませう
0891デフォルトの名無しさん
NGNGださいですね
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGあれはHDC必要なんか
0894デフォルトの名無しさん
NGNGHDC hdc, // handle to DC
LPCTSTR lpString, // text string
int cbString, // characters in string
LPSIZE lpSize // string size
);
0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG> HDC hdc, // handle to DC
だから、解決してないでしょ
0897デフォルトの名無しさん
NGNGHDCは使える環境であると仮定されてるんだし
HDC使えばいいんじゃね?
何か使えない理由でも?
0898デフォルトの名無しさん
NGNG文字幅じゃなくて、lfWidthに指定する幅を取得したいんですよ。
TEXTMETRICのtmAveCharWidthだと思うのですが。
lfWidth=0で作成したときとの比がWidth:Height=2:1のフォントを作成したいから、どうしても幅を取得したいわけです。
使いもしないオブジェクト(選択用DC、基準フォント)を作るのはどうも気が進まないので。
0899デフォルトの名無しさん
NGNG互換ヂーシーのハンドルをもつようにしてす、
0900デフォルトの名無しさん
NGNGって言っても、この流れは止まらないか。
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGくりえいとのときに固定ぴっちを指定するのはだめなんですか
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG何がやりたいのかさっぱりわからん。
lfWidthが0だとフォントの都合のいい幅にしかならんから、
フォント次第では永遠にW:H=2:1になることなどありえんし、
第一可変幅フォントはどうするんだ? 固定ピッチしか考えてないのか?
説明不足すぎ。
0907デフォルトの名無しさん
NGNG全角:半角が2対1ではないです。
基準フォントと比較して幅が2倍になるってことなんですが、うまく説明できてませんでしたか。
基準フォント MS UI Gothic lfHeight=-n, lfWidth=0 で作ったフォントのサイズを Width=w, Height=h とすると、
作成したいフォントのサイズは Width=2w, Height=1hとしたいわけです。
固定ピッチでもプロポーショナルでも単純に横幅2倍のフォントを得たいのです。
0908デフォルトの名無しさん
NGNG>lfWidthが0だとフォントの都合のいい幅にしかならんから
この都合のいい幅の2倍の幅が欲しいのです。
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNGちょっと違いますが、そんな感じです。
基準の絵を横2倍に伸張したのでは解像度が低くなるので、
フォント作成の時点で横2倍のフォントが欲しいのです。
0911デフォルトの名無しさん
NGNG基準フォントって何?
アプリ起動時からDCに割り当ててあるフォントの話なら、普通にGetDCして幅取ればいい。
これに関しては他に方法はないだろ、DC以外情報持ってないんだから。
(それとも、GetDCしたくないがために、システム設定からフォント情報拾ってくる手間をかけるつもり?)
ただこの仮説だと、
> 使いもしないオブジェクト(選択用DC、基準フォント)を作るのはどうも気が進まないので
の部分が意味不明になる。幅取るだけならSelectFontの必要がないから。
自分で「基準として」設定したフォントなら、って、このケースはありえないよな。
自分で知ってるはずなんだから。
ますますわけがわからん。最初っから、省略なしで、説明しなおしてくれ。
0912デフォルトの名無しさん
NGNGlfWidth=0でCreateFontをした結果得られる最適な幅を持つフォントを基準フォントとします。
この基準フォントは、任意に選択可能であるものと思ってください。>>911で言う、自分で
「基準として」設定したフォントです。
で今回の質問ですが、この基準フォントの横倍角のフォントを作成したいのですが、
lfWidthに指定する値をどうやって求めればいいのですか?
その際、基準フォント自身は一切使われる事が無いので実体はありません。
>自分で知ってるはずなんだから。
知らないから、それを得る手段を探しているのです。
0913デフォルトの名無しさん
NGNGなぜ使えないのですか?
教えてください
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGLOGFONT lf;
CHOOSEFONT cf = { sizeof(CHOOSEFONT), 0, GetDC(0), &lf, 0, CF_SCREENFONTS };
::ChooseFont(&cf);
lf.lfWidth = ???;
::CreateFontIndirect(&lf);
倍角フォントを作成するために、
???でするべき事を教えてください。
0916デフォルトの名無しさん
NGNGどうやってターゲットバージョンをしていしますか、おしえてください
0917デフォルトの名無しさん
NGNG#define WINVER 0x501←XP
#define WINVER 0x502←2003Sv(?)
0918デフォルトの名無しさん
NGNGをwindows.hの前に定義するでいいんですよね
ありがとうございました
0919デフォルトの名無しさん
NGNG実際にフォントを作ってDCに選択しない限り、
何のフォントがマップされるかわからないし
平均幅だって知りようがないと思うよ。
ダメ元でEnumFontFamiliesでもしてみれば?
0920デフォルトの名無しさん
NGNG#define WINNT
でいいのかもしれない(未確認)
0921デフォルトの名無しさん
NGNG作成した時点だけではなく、デバイスコンテキストに選択した時点で
使用されるフォントの本当の実体が決定されるって言う事ですか?
0922デフォルトの名無しさん
NGNGそう。
SelectFontしてDCに選択させるまで、フォントの「本当の」幅を得る方法はない。
なぜなら、CreateFontで作成するのはデバイスに独立した論理フォント、仮のフォントだから。
論理フォントをDCで選択することではじめてDCと物理フォントが結びつき、
その時点ではじめて物理フォントの幅が得られる。
物理フォントがどういうものになるかは、選択するデバイスの特性に依存する。
今のビデオカードのようなラスタデバイスなら論理フォントに近い属性のものになりうるが、
(これは極端だが)昔のキャラクタ端末のようなものなら論理フォントでどう指定しようと
物理フォントは特定の特性しか持ち得ない。
逆に、ベクトルプロッタなら「本当に」論理デバイスに忠実な描画ができる(かもしれない)。
こういうさまざまなデバイスを統一的に扱うことを前提としてGDIは設計されているので、
論理オブジェクトでできることはいろいろ制限がある。
GetDeviceCapsでも眺めれば、そんな歴史の遺物の一端がみられるよ。
0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNGISHELLFOLDER型のポインタのLPSHELLFOLDERで
EnumObjectを使いたいのですが
LPSHELLFOLDER *lpShellFolder;
SHGetDesktopFolder(&lpShellFolder);
lpShellFolder->lpVtbl->EnumObject (lpShellFolder,hwnd,
SHCONTF_FOLDERS | SHCONTF_NONFOLDER | SHCONTF_INCLUDEHIDDEN, &lpEnumIdList);
となってますが
エラー E2316 ex.cpp 129: 'lpVtbl' は 'IShellFolder' のメンバーではない(関数 __stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) )
と返されてしまいます。
始めにshlobj.hをインクルードしてるので、shlobj.hの中身を読んで見ましたが
思わしき関数を見つける事が出来ませんでした。
Borland C/C++の場合はなんと言う名前なのでしょうか?
0925デフォルトの名無しさん
NGNGC++なら直接lpShellFolder->EnumObjectで行けるんじゃないの?
0926デフォルトの名無しさん
NGNGエラー E2316 ex.cpp 129: 'EnumObject' は 'IShellFolder' のメンバーではない(関数__stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) )
と返されてしまいました
どうやら違うみたいです
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG>エラー E2227 ex.cpp 132: __stdcall IShellFolder::EnumObjects(HWND__ *,unsigned long,IEnumIDList * *)
>の呼び出しに余分なパラメータがある(関数 __stdcall WndProc(HWND__ *,unsigned int,unsigned int,long) )
というエラーに進展しました
あとは自力で何とかしてみようと思います
0929デフォルトの名無しさん
NGNG有難うございました。
0930デフォルトの名無しさん
NGNGlpShellFolder->EnumObjects (hwnd,
SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN,
&lpEnum);
としました
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNGWaitForSingleObject(event, 0);
0933デフォルトの名無しさん
NGNGありがとうございました
0934デフォルトの名無しさん
NGNGプログラムの中のWaitForSingleObject(event,INFINITE)が止まったままです
event handleをDLLに渡して使ってます
わかりません教えてください
0935デフォルトの名無しさん
NGNGHandle は作成したプロセスでのみ有効なので、作成したプロセスの PID を共有しておいて、
フックされたそれぞれのプロセスで DuplicateHandle して、当該プロセスで有効なハンドルを
得る必要があります。
0936デフォルトの名無しさん
NGNGはい、やってみます
ありがとうございました
0937デフォルトの名無しさん
NGNGようするに同期とりたい訳でしょ?
だったらウィンドウメッセージを使うと吉。
0938デフォルトの名無しさん
NGNG98でも透明化することはできますか?
0939デフォルトの名無しさん
NGNGRGBを得るにはどうすればよいのでしょうか?
0940デフォルトの名無しさん
NGNG監視するファイルの拡張子を指定できませんか?
0941デフォルトの名無しさん
NGNGWindows 2000 でできるようになった方法は、Windows 98 では使えない。
みーたんは知らん。
>>939
できる。
>>940
API を見ればわかる通り、できない。
0942デフォルトの名無しさん
NGNG>>939 適当なDCにSelectBitmapしてGetPixelとか。
>>940 できない。NT系のみだがReadDirectoryChangesWでごそごそやる手はある。
0943デフォルトの名無しさん
NGNGでは、ある程度の時間間隔でマージされたイベントを受信したいのですが、可能ですか?
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGhttp://www.ksky.ne.jp/~seahorse/libgw/
例えばこんな外部のライブラリに頼るか、自分で実現するかしかない。
0946938
NGNG0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNGやりたい事は、
いきなりメモ帳が起動される。←これはできた。
↓
自動的に"むだむだむだむだ"と入力され、変換される。うまくいけば"無駄無駄無駄無駄"になる。←これができない。
メモ帳のEDITコントロールにWM_KEYDOWNとWM_KEYUPを送ってみました。
たしかにメッセージが送られていることを、spy++を使って確認したのですが、なぜか文字が入力されません。
WM_SETTEXTという手もあるんですが、一文字一文字入力されていったほうがインパクトがあると思うのです。
一文字づつ文字を増やしてコピーというのも、変換の動作が出来ませんし
keybd_event()だと、アクティブでないといけないし、
どなたか方法を知りませんか?
0949デフォルトの名無しさん
NGNGWM_TIMER
「むだむだ」の上に「無駄無駄」を上書き
0950デフォルトの名無しさん
NGNG出来ないなら、いますぐやめろ。
0951948
NGNGそれ以前に、半角英数字すら入力できないのですが。
↓こんな感じです。aと入力したいのですが……
#define CHAR_A 0x41
SendMessage(notepadHwnd, WM_KEYDOWN, (WPARAM)CHAR_A, NULL);
SendMessage(notepadHwnd, WM_UP, (WPARAM)CHAR_A, NULL);
0952デフォルトの名無しさん
NGNG遊びみたいだからズバリは言わないでおくけど、Spy++でメモ帳をよーく見てみよう。
0953948
NGNG○ WM_KEYUP
0954デフォルトの名無しさん
NGNG面倒くさいことしなくても(WPARAM)'A'でいいだろ
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG16bitカラーのスクリーンをキャプチャした時、BITMAPINFO::bmiColors にセットすべき、
3つのDWORD値はどうやって取得すれば良いのですか。
0959デフォルトの名無しさん
NGNG名前付きイベント作ったほうが簡単じゃね?
0960デフォルトの名無しさん
NGNGキャプチャって何? スクリーンのDCからBitBltしてきた物? キャプチャライブラリの出力?
bmiColorsは3つのDWORD値などではないが、いったい何をセットする気だ?
そもそもそのHBITMAPは何なのだ? キャプチャの結果? それともそのコピー先?
俺も頭悪いから、おまえさんが何をしたいのかさっぱりわからん。
0961デフォルトの名無しさん
NGNGそんなマンドくせーフォーマット使うよか、24bitで受けた方が話は早いと思う。
0962デフォルトの名無しさん
NGNG試してないけど、ドキュメントには、
BYTE bmiBuffer[ sizeof(BITMAPINFO) + sizeof(RGBQUAD)*3];
BITMAPINFO* pBMI = (BITMAPINFO*) bmiBuffer;
ZeroMemory(pBMI, sizeof(bmiBuffer));
HDC hdc = GetDC(NULL);
GetDIBits(hdc, (HBITMAP) GetCurrentObject(hdc, OBJ_BITMAP),
0, 100, NULL, pBMI, DIB_RGB_COLORS); // 0と100は適当
とかすれば BITMAPINFO を得られるようなことが書いてある。
0963デフォルトの名無しさん
NGNGVirtualAlloc(NULL,512000000,MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE);
メモリー3G、XP−SP1でできない
NT−SP6ならOKだ。誰か助けてくれ!
0964デフォルトの名無しさん
NGNG512MB近くの連続領域は運が良くないと取れないと思うぞ。
32bit Windows ではユーザプロセスは標準では 2GB の仮想空間しか持
てない。その中に不連続に exe や DLL がマップされる。
Windows 2000 以降だったら、3GB モードを使えば確保できる確率は上
がるかも。
0965デフォルトの名無しさん
NGNG子ウインドウの枠を消していろいろやりたいんですが・・・
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGありがとです
0968デフォルトの名無しさん
NGNGそのウインドーがどのプロセスのものか調べるにはどうやればできますか?
教えてください
0969デフォルトの名無しさん
NGNG完全に無反応にすることって可能でしょうか?
(ボタンが機能する状態と、無反応の状態を切り替えたい)
押しても閉じない状態まではできるんですが、それでも
ボタンを押したままの状態だと制御がWINMAINに戻ってこなくて・・・
メイン部分を別スレッドにするとかしないとダメ?
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGdisableにするのはダメなの?
0972デフォルトの名無しさん
NGNG脇道にそれるけど512MB=512*1024*1024だからそれだとちょっと足りない。
0973デフォルトの名無しさん
NGNGボタンをdisableやgrayedにして機能しなくすることはできたんですが、
これだとボタンの上でクリック(ドラッグ)すると、放すまで制御が
WINMAINに戻ってこないんですよね。
ボタン押されてもMAINのコードが止まらないようにしたいんですよ。
0974デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNGウインドーハンドルからプログラムのEXEファイルの名前が知りたいのです
それをやるにはどうやりますか?
0977デフォルトの名無しさん
NGNG違ってたらおしえてください
0978デフォルトの名無しさん
NGNGMSのKBにまんまその回答があったなぁ。
GetModuleFileNameはローカルプロセス専用だった気がする。
0979デフォルトの名無しさん
NGNGそれはモジュールハンドルやインスタンスハンドルを引数に取るんでウィンドウハンドルは無理です。
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG'Z'キーを押した時っていうのはどう表現すればいいですか?
可能なのでしょうか
0983デフォルトの名無しさん
NGNG呼び出し側に制御をすぐに返すのとそうでないのはわかりますけど
それだけの違いではないですよね?
0984デフォルトの名無しさん
NGNGSendはその内部で直にウインドウプロシージャを呼び出し、
Postはメッセージをキューに入れるだけで、そのうちGetMessageなどで処理されるのを期待する。
と、俺はこんな感じに捉えているのだが。
0985デフォルトの名無しさん
NGNG表現はできているじゃないか。
状態を取得したいなら GetKeyboardStatusとかそんなAPIがあった気がする。
0986デフォルトの名無しさん
NGNGWM_KEYDOWN内でGetAsyncKeyState()関数の組合せで出来ました。
ありがとう。
0988デフォルトの名無しさん
NGNGのび太のくせに生意気だぞ
0989デフォルトの名無しさん
NGNG惜しい、その場合はGetKeyStateだ。
0990デフォルトの名無しさん
NGNGその違いが理解できないなら使い分ける必要は無い。
非同期と動機の違いで、
同期のSendMessageは戻り値を受け取る事が出来、
非同期のPostMessageは、優先順位に応じて最適なタイミングでの処理が期待できる。
0991デフォルトの名無しさん
NGNG1.ウィンドウを移動できないようにするにはどうすればいいか?
WM_MOVING等のイベント拾って無視しても無駄でした。
2.ウィンドウシェードをやりたいのですが、その方法は?
ウィンドウサイズを0にしたりボーダー+キャプションの高さに
しても無理でした。
よろしくお願いします。
0992デフォルトの名無しさん
NGNG0993991
NGNGWin32API質問箱 Build21
http://pc5.2ch.net/test/read.cgi/tech/1090422324/
0994デフォルトの名無しさん
NGNG1.WM_WINDOWPOSCHANGING
2.WM_WINDOWPOSCHANGING/WM_GETMINMAXINFOで妙なことしてなければ普通にサイズ変更するだけ。
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ (´´
∧∧ ) (´⌒(´
⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。