Win32API質問箱 Build24
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGBuild23:http://pc5.2ch.net/test/read.cgi/tech/1095534704/
Build22: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://wisdom.sakura.ne.jp/system/winapi/
WIN32 Programming
http://www7.plala.or.jp/keny01/win32/
Win32 SDK Programming
http://www7.plala.or.jp/keny01/windows/win32/
0003デフォルトの名無しさん
NGNGあれだけ確認したのにな
0004デフォルトの名無しさん
NGNG次スレ立てる人はこれでお願い
- MSDN Online
http://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://wisdom.sakura.ne.jp/system/winapi/
Win32 プログラミング入門
http://www7.plala.or.jp/keny01/windows/win32/
Win32 SDK Programming
http://usr_vogel.at.infoseek.co.jp/Win32SDK/
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGXP pro でイベントビューアを見ると
エラー発生アプリケーション 私のアプリケーション.exe、バージョン 1.0.1.4、
エラー発生モジュール ntdll.dll、バージョン 5.1.2600.1217、エラー発生アドレス 0x00008e22
というログを残すエラーが発生しました。
RtlFreeHeap のエントリポイントが近いので、RtlFreeHeap が怪しいと思います。
8月から10月の間で2台のパソコンで各1回ずつ発生しました。
私のアプリケーションは1〜2週間は連続稼動しています。
同じような現象で悩んだ方がいましたら、何かヒントを教えて頂けませんか?
0007デフォルトの名無しさん
NGNG> >>987
> デザインの話じゃねぇの?
> もし一部のメニューが非表示になる機能だったら
> 絶対に止めとけ。使いにくくてしょうがない
個人の意見を押しつけるのはやめて下さい
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG2000でやってたアレも同系
0011デフォルトの名無しさん
NGNGワラタ
0012デフォルトの名無しさん
NGNGなんのことかサッパリ解らん。
0013デフォルトの名無しさん
NGNG標準のボタンを作りたいのですが、やっぱり出来ません。
モードレスダイアログではリソースエディタで”標準のボタン”を
指定するだけで出来ました。
CreateWindowで親ウインドウを作成
CreateDialogで親ウインドウにダイアログを貼り付ける
親ウインドウのプロシージャ
switch(msg)
{
//hWndDlgはダイアログのハンドル
case WM_SETFOCUS:
SetFocus (hWndDlg);
break;
メッセージループ
while (GetMessage (&msg,NULL,0,0))
{
if (hWndDlg && IsDialogMessage (hWndDlg,&msg))
{
continue;
}
TranslateMessage (&msg);
DispatchMessage (&msg);
}
0014デフォルトの名無しさん
NGNGインデックスカラー値じゃないと使えないよね?
最近のウィンドウズのデフォルト色は、まず間違いなくインデックスカラー値から
外れてくるから、LR_LOADMAP3DCOLORSは使えない気がするんだけどどうだろう。
0015デフォルトの名無しさん
NGNG何か勘違いしている。
0016デフォルトの名無しさん
NGNG俺の勘違いかな。色を変えるというかパレットを変えるイメージだったのだが。
と思って今軽く試してみたけど、やはり出来ない気がする。時間が無くて適当でごめん。
0017デフォルトの名無しさん
NGNG>指定するだけで出来ました。
じゃ、問題なしだな
0018デフォルトの名無しさん
NGNGSHChangeNotifyRegisterのことで質問があるのですが、どなたかお答え
いただけますか?
0019デフォルトの名無しさん
NGNG002018
NGNGSHChangeNotifyRegisterの起動時に、以下のパラメータを指定します。
第2引数:0x0001 | 0x0002(ファイル及びシェルからの通知を指定)
第3引数:SHCNE_ALLEVENTS(全てのイベントを受信)
この状態で、イベントの一つであるSHCNE_CREATE(アイテムの作成)を
受信したいとき、アプリケーションを起動して「ファイルを保存」から
ファイルを作成したときには受信しません。
右クリックで、「新規作成」から新規ファイルを作成したときには、受信します。
質問は、アプリケーションを起動して「ファイルを保存」からファイルを
作成したときに、どうやったらSHCNE_CREATEを受信できるかです。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG下のようなダブルバッファリングするようなプログラムを作ったのですが、どうもうまくいきません
いろいろやってみたのですがよくわかりません。
どうすれば、うまく動くようになるでしょうか?
症状 : うまく転送されていない、とおもう。(色を指定してもメッシュがかかったような白黒になる、白、黒はうまくいった)
プログラム :
//省略
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hDc = BeginPaint( hWnd , &ps );
HDC hbDc = CreateCompatibleDC( hDc );
HBITMAP hBitmap = CreateCompatibleBitmap( hbDc , 640 , 480 );
HBITMAP hOldBitmap = SelectObject( hbDc , hBitmap );
{
HBRUSH hBrush = CreateSolidBrush( RGB( 100 , 0 , 100 ) );
SelectObject( hbDc , hBrush );
PatBlt( hbDc , 0 , 0 , 640 , 480 , PATCOPY );
DeleteObject( SelectObject( hbDc , GetStockObject( WHITE_BRUSH ) ) );
}
SelectObject( hbDc , GetStockObject( BLACK_BRUSH ) );
Rectangle( hbDc , x , y , x + 100 , y + 100 );
BitBlt( hDc , 0 , 0 , 640 , 480 , hbDc , 0 , 0 , SRCCOPY );
DeleteObject( SelectObject( hbDc , hOldBitmap ) );
DeleteDC( hbDc );
EndPaint( hWnd , &ps );
break;
}
//省略
きゃらの座標(x,y)更新後、InvalidateRect( hWnd , NULL , FALSE)としてWM_PAINTメッセージを発生させています。
0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGよく見るとAPIのヘルプに書いてありましたね。
見逃していました。
ほんとにありがとうございました。
0025デフォルトの名無しさん
NGNGよくコード見て無いけど、SetMapMode(hDC,MM_TEXT);とかモード設定してみ
あと、コードの途中の{}は何だ?
0026デフォルトの名無しさん
NGNG以前SHChangeNotifyRegister()を使ったところ、あまり当てにならなかった記憶がある。
ReadDirectoryChangesW()の方がお奨め。
0027デフォルトの名無しさん
NGNGまあそろそろ9xは切り捨ててもいいか
002818
NGNGReadDirectoryChangesWについて質問していいですか?
ファイル数やディレクトリ数のエントリ数が多数で、ディレクトリの階層が深い
場所(例:OSの入っているドライブ)をルートから監視するとき、
ReadDirectoryChangesWを起動している間のパソコンのパフォーマンスは
悪くなりますか?
0029デフォルトの名無しさん
NGNG自分で試せよ
0030デフォルトの名無しさん
NGNGシステムのプロパティから見れる環境変数を変える事って出来ない?
インストーラーとかが時々やってるけど…。
0031デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGポインタがらみだと思うのですがどう書けばうまくいくのかわかりません。アドバイスお願いします。
0034デフォルトの名無しさん
NGNG#include <stdio.h>
#include <windows.h>
DWORD WINAPI Testthread(LPVOID);
int main() {
int i;
HANDLE hTh[3];
DWORD tid[3];
for (i=0; i<3; i++) {
/* スレッドを作成 */
hTh[i] = CreateThread(NULL,0,Testthread,(LPVOID)&i,0,&tid[i]);
}
WaitForMultipleObjects(3, hTh, TRUE, INFINITE);
for (i=0; i<3; i++) {
CloseHandle(hTh[i]);
}
return 0;
}
DWORD WINAPI Testthread(LPVOID lpx) {
int num = *((int *)lpx);
printf("%d\n", num);
return 0;
}
0035デフォルトの名無しさん
NGNGhTh[i] = CreateThread(NULL,0,Testthread,(LPVOID)i,0,&tid[i]);
int num = (int)lpx;
0036デフォルトの名無しさん
NGNGアドバイスありがとうございます。その方法でできました。
なぜそれでできるのかまだわからないですが・・・void*型調べてみます。
0037デフォルトの名無しさん
NGNGCreateThread() した瞬間に作ったスレッドが走り出すとは限らない。
CreateThread() が3回呼ばれた後にそれぞれのスレッドが動き始めるん
だろう。
0038デフォルトの名無しさん
NGNG透明度を255にして元に戻したのですが、
前よりかなり重くなりました。
何かマズいことをしたのでしょうか?
0039デフォルトの名無しさん
NGNGWS_EX_LAYEREDを外せ
004138
NGNGここに書かれているやり方でWS_EX_STYLEを外そうとしたのですが、
適用したウィンドウの全ての内容が左右反転してしまいました。
ttp://hitokuso.kicks-ass.org/progtips.html
しかもとてつもなく重いです。
LONG my_style;
my_style=GetWindowLong(hWnd,GWL_EXSTYLE);
my_style&=~WS_EX_LAYERED;
SetWindowLong(hWnd,GWL_EXSTYLE,my_style);
004238
NGNG一部 GWL_STYLE と書き間違えていたのが問題だったようです。
焦って混乱してましたが、解決しました。
お騒がせしました。
0043デフォルトの名無しさん
NGNG#include <stdio.h>
#include <windows.h>
DWORD WINAPI Testthread(LPVOID);
int main() {
int i, d[3];
HANDLE hTh[3];
DWORD tid[3];
for (i=0; i<3; i++) {
/* スレッドを作成 */
d[i] = i;
hTh[i] = CreateThread(NULL,0,Testthread,(LPVOID)&d[i],0,&tid[i]);
}
WaitForMultipleObjects(3, hTh, TRUE, INFINITE);
for (i=0; i<3; i++) {
CloseHandle(hTh[i]);
}
return 0;
}
DWORD WINAPI Testthread(LPVOID lpx) {
int num = *((int *)lpx);
printf("%d\n", num);
return 0;
}
>>35 は場当たり的な回答だから真似するな
0044デフォルトの名無しさん
NGNG32bit環境ならintもポインタも4byteだから
単一の値を渡すだけなら>>35は常套手段だと思うけど。
0045デフォルトの名無しさん
NGNGSB_GETTEXTでは他アプリのステータスバーには無効らしくうまくいきません。
ググっていると共有メモリを使うとよい、という話も有るようなのですがさっぱりわかりません。
何か簡単な方法はないものでしょうか?
0046デフォルトの名無しさん
NGNG他アプリというのは自分でつくったアプリ?
0047デフォルトの名無しさん
NGNG違います。
0048デフォルトの名無しさん
NGNG俺が思いつくのは、
1. 自作のDLLをそのアプリに注入する (SetWindowsHookEx)
2. そのDLLはSB_GETEXTでステータスバーの文字列を取得する
3. 共有メモリを使って (WM_COPYDATAとかでもいいけど)
DLLから自作アプリに文字列を渡す
もっといい方法があるかもしれないので参考までに。
0049デフォルトの名無しさん
NGNG標準出力のハンドルを取得して、使い終わってもCloseHandle()などで閉じる必要は
無いんでしょうか?
というか何度もその都度GetStdHandle(STD_OUTPUT_HANDLE)で取得しても良いんでしょうか?
void hoge() {
HANDLE out;
DWORD num;
out = GetStdHandle(STD_OUTPUT_HANDLE);
WriteConsole(out, "aaa", 3, &num, NULL);
//CloseHandle(out); //<=これをすると2回目以降出力されなくなる
}
int main() {
hoge(); hoge();
}
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGGetStdHandleはCloseHandleするな。
何度もGetStdHandleするのが気になるなら、静的変数なんかにしろ。
0053デフォルトの名無しさん
NGNG監視するツールを作りたいのですが、上手く行きません。
他プロセスの入出力を監視するには、
CreateFileやRead/WriteFileをフックすれば良いと思い、
Kernel32.dllのラッパーを作成しようとしているのですが、
明示的リンクを行うためのGetProcAddress関数等が
Kernel32.dllに含まれるためか、コンパイルが通りません。
他の方法を試そうにも、これ以外思い浮かばず困っています。
Kernel32.dllのラッパーを作る方法、
又は、他プロセスのファイル入出力を監視する方法を
知っている方居ましたらお願いします。
0054デフォルトの名無しさん
NGNGデバイスドライバ
0055デフォルトの名無しさん
NGNGどこか詳しい解説をしてあるサイトはありませんでしょうか?
システムフックは今回使わないつもりです。
自分なりに調べてやったら、
どこかが間違っていたらしく、
タスクバーから何から消えた上に終了までできなくて困りましたので。
0056デフォルトの名無しさん
NGNGAPIフック
参考
・ttp://www.codeproject.com/system/hooksys.asp
・Advanced Windows日本語版
0057デフォルトの名無しさん
NGNG作らなくていいよ。
http://www.sysinternals.com/ntw2k/source/filemon.shtml
0058デフォルトの名無しさん
NGNGうまくいかないところがあるので質問させてください。
データが小さい時はacmStreamConvertを一回呼び出して終わりでこのときはきちんと変換されます。
一方、大きいWAVEファイルを変換する場合に、ループ処理で少しずつ変換させていったところ
関数自体は成功するんですが、いざ再生するとノイズの嵐になります。
以下ソース(StreamHeaderはACMSTREAMHEADERです。)
for(dwOffset=0,dwRest=dwSrcSize;dwRest>0;){
//ソースから読み取り
dwRead = min(dwDefRead,dwRest);
src.FillWaveStream(dwOffset,StreamHeader.pbSrc,dwRead);//dwOffsetからdwReadだけpbSrcにWAVEストリームコピー
dwRest -= dwRead;
dwOffset += dwRead;
//変換
::acmStreamConvert(hAcmStream,&StreamHeader,ACM_STREAMCONVERTF_BLOCKALIGN);
//バッファに書き込み
dst.insert(dst.end(),StreamHeader.pbDst,StreamHeader.pbDst + StreamHeader.cbDstLengthUsed);
}
デバッガで追っていてもエラーコードは返ってきていないので原因が分かりません。
ネットで調べてもacm関連のページはあまり見つからなくて解決できませんでした。
どなたかどこが間違っているか分かる方がいましたら教えてください。よろしくお願いします。
0059デフォルトの名無しさん
NGNGVirtualAllocExでそのプロセス内にメモリを確保してSB_GETTEXTしてReadProcessMemoryとかで読み込んであげる。
プロセスごとにアドレスが違ってるから普通にポインタは渡せないってだけ。
OSによっては共有メモリでプロセスが違ってても同じアドレスになる。
0060デフォルトの名無しさん
NGNGFindFirstChangeNotificationみたいな感じにプロセスが作成されたのを通知してくれるAPIとかあるといいなと思うのですが。
0061デフォルトの名無しさん
NGNGacmStreamConvert に送ったデータを変換関数が全て使い切ってない。
dwOffset を読み込んだバイト数でなく変換関数が使った分(cbSrcLengthUsed)だけ進める。
006253
NGNG>>54
ドライバに関する知識がないので、難しそうですが、
ドライバってハードウェア制御する以外にも色々出来るんですね。
勉強してみたいと思います。
>>56
リンク先斜め読みしただけですが、参考になりそうです。
APIのジャンプテーブルを上書きとか、とても思いつきませんでした。
Advanced Windowsはちょっと高すぎるので、
とりあえず立ち読みをしてみます・・・。
>>57
良いソフトの紹介ありがとうございます。
使ってみます。
0063デフォルトの名無しさん
NGNG006458
NGNG速レスありがとうございます。
> dwOffset を読み込んだバイト数でなく変換関数が使った分(cbSrcLengthUsed)だけ進める。
とありますが、この場合、StreamHeader.pbSrcには前回使われていなかった部分の先頭からでいいのでしょうか?
こんな感じに・・・
dwRead = min(dwDefRead,dwRest);
src.FillWaveStream(dwOffset,StreamHeader.pbSrc,dwRead);//dwOffsetからdwReadだけpbSrcにWAVEストリームコピー
//変換
::acmStreamConvert(hAcmStream,&StreamHeader,ACM_STREAMCONVERTF_BLOCKALIGN);
//オフセットとかの計算
dwRest -= StreamHeader.cbSrcLengthUsed;
dwOffset += StreamHeader.cbSrcLengthUsed;
//バッファに書き込み
dst.insert(dst.end(),StreamHeader.pbDst,StreamHeader.pbDst + StreamHeader.cbDstLengthUsed);
006558
NGNGどうもありがとうございました。
006648
NGNGなるほど。それはシンプルだね。
俺の方法は無駄に複雑にしている気がしてたんだよ。orz
今試せる環境がないので質問させてほしいんだけど、
VirtualAllocExの前に相手プロセスをOpenProcessするわけでしょ。
ログオンユーザーが一般ユーザーやゲストのときでも成功するの?
0068デフォルトの名無しさん
NGNGおもしろそうだし、明日にでもやってみよう。
006945
NGNG当方Win9x系なのですが、ググっているとVirtualAllocExを使う方法は
Win9x系では使えない(?)というような話が出ていたのですが
Win9x系でも出来るのでしょうか?
007059
NGNGまとまってるのがあった。
http://www.interq.or.jp/jupiter/susumu/shrmem.html
0071デフォルトの名無しさん
NGNG俺は、
http://yebisuya.dip.jp/WinTips/tips7.html
を参考に作った事がある。
この場合、kernel32.dllに
VirtualAllocEx()
VirtualFreeEx()
があれば使えるはず。少なくとも、WinMEにはあるよ
0072デフォルトの名無しさん
NGNGフックタイプをWH_CBTにしてSetWindowsHookEx()をコールする。
DllMain()のPROCESS_ATTACHでプロセスが作成されたと判断する。
ってのはどう?
0073デフォルトの名無しさん
NGNGファイル名を受け取るにはどうすればいいですか?
0075デフォルトの名無しさん
NGNGWS_EX_ACCEPTFILES
WM_DROPFILES
0076デフォルトの名無しさん
NGNGドラッグが始まったことを知りたい場合はどうやったらいいのでしょうか?
0077デフォルトの名無しさん
NGNGただのドラッグなら不可能。何を持ってドラッグ化はアプリ側で定義可能だから。
他のアプリのOLEドのラッグなら、知る方法があるが、
自分のアプリにドロップされようとしていないのに、
知ろうとするのはアプリとして間違っている。
0078デフォルトの名無しさん
NGNGそのサブクラスがWM_COMMANDだけを受け取ってくれません。
メッセージボックスでチェックしたところ他のは受け取っているようなんですが・・・
ツールバーはCreateWindowExで作成し、
サブクラス化した後、ボタンを追加しています。
どこか問題があるのでしょうか?
0079デフォルトの名無しさん
NGNGWM_COMMANDを受け取るのは親ウインドウだろ。
ツールバーのクラスが親に投げているので、サブクラスで取れるわけないじゃん。
0080デフォルトの名無しさん
NGNG親ウィンドウにWM_COMMANDが送信されてると思う。
0081デフォルトの名無しさん
NGNGなるほど。
すいません、知りませんでした。
ツールバーのどのボタンが押されたかをサブクラスで知るにはどうしたらいいのでしょうか。
ウィンドウプロシージャを弄れないので、サブクラスで受け取らなきゃいけないんです。
0082デフォルトの名無しさん
NGNGボタンなんかとれません。ツールバーのは、実はボタンじゃないから。
SPYで見てみると、このことはわかります。
なので、ツールバーを持つウィンドウクラスを一個作ってラップするか、
ツールバーを自作してください。
0083デフォルトの名無しさん
NGNG親ウィンドウをサブクラス化する手もあるね
008518
NGNG重くなるような感じはしませんでした。
それで、ReadDirectoryChangesW()を使う上で一つ疑問が生まれました。
ファイルやディレクトリの変更があった瞬間で、行ったユーザ名の情報を
どうやって取得するかです。
ネットワークでの共有ディレクトリを監視したいときに、誰がその行為を
したのかという情報を得たいためです。
ファイルやディレクトリに関するAPIを探してみましたが、ありませんでした。
どなたか何らかの方法をご存知でしたら、教えてください。
0086デフォルトの名無しさん
NGNGクリックされたことを知るためにサブクラス化を用いようと思っています。この場合、そのメッセージを
受け取るためのコールバック関数はそれぞれ別にする必要はありますか?
008786
NGNG008818
NGNG補足です。
ユーザ名を得る関数は、GetComputerNameやGetUserNameの2つがあることは
知っています。
85での取得イメージとして、ReadDirectoryChangesWで得られるFILE_NOTIFY_INFORMATION
構造体にあるファイルやディレクトリ情報を使って、ユーザ名を得たいです。
0089デフォルトの名無しさん
NGNGネットワークアダプタにケーブルが接続されているかどうかを
取得できるAPIはないでしょうか?
XPだと、Win32_NetworkAdapterクラスの
NetConnectionStatusプロパティを参照で行けたのですが・・・
0090デフォルトの名無しさん
NGNGttp://wisdom.sakura.ne.jp/system/winapi/win32/win120.html
bmpInfo = (BITMAPINFO *) malloc (bmpFileHeader.bfOffBits - dwBytes);
bmpFileHeader.bfOffBits - dwBytesの計算が分かりません。
dwBytesはそれ以前に代入された
ReadFile(hFile , &bmpFileHeader , sizeof (BITMAPFILEHEADER) , &dwBytes , NULL);
で代入されたBITMAPFILEHEADERのバイト数だと思うので、
ピクセルビットの開始点までの範囲からファイルヘッダの範囲を引いたら、
情報ヘッダ(BITMAPINFO)のメモリのサイズが求められるって事ですか?
0091デフォルトの名無しさん
NGNG試してないけど、ここで似たようなことやってる。
ttp://www.experts-exchange.com/Programming/Q_20696554.html
INetConnectionManager
↓
IEnumNetConnection
↓
INetConnection ... のプロパティ
という流れらっしー。
0092デフォルトの名無しさん
NGNG算数できる?
図かいて整理してみ。
009489
NGNGソースをコピペして試してみたところ、
Windows2000でも目的の動作を実現できました。
これから、ゆっくりソースを読んで理解したいと思います。
ありがとうございました。
009576
NGNG回答ありがとうございます。
>アプリとして間違っている。
ユーザーに有効無効を設定できるようにするので問題ないようにも思います。
目的はOLEのドラッグの検出のみです。なにか、ぐぐるのキーワード等教えていただけないでしょうか?
009690
NGNGああ。何となく確信もてた。スマソ。
ビット苦手だOTZ
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGSHGetSpecialFolderLocationで、CSIDL_PROGRAM_FILES指定
0099デフォルトの名無しさん
NGNGSHGetSpecialFolderLocationでぐぐったけどその定数定義してるとこみつからなかった〜
でもできますた、ありがとうエロい人
0100デフォルトの名無しさん
NGNG98/Meにはエントリはあるがダミーだよ
(常にERROR_CALL_NOT_IMPLEMENTEDを返すだけ)
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNGナウなヤングはSHGetSpecialFolderPath()を使うよ。
0103デフォルトの名無しさん
NGNG通常のアプリケーションからは印刷できるけど
サービスプログラムからは印刷できないっす。
サービスはシステムローカルアカウントが動作するのが
原因と思われるんですけど、
印刷できるようにすることってできますかね?
0104デフォルトの名無しさん
NGNG俺も、サービスからネットワークプリンタに印刷できなかったことがある。
ネットワークにアクセスする権限がないんだと納得してたんだけど
ローカルプリンタでもダメなのか。
それはともかく、俺の場合はLogonUser APIを使って
ネットワークにアクセスできるユーザーに偽装することで回避した。
0105デフォルトの名無しさん
NGNG0106104
NGNGが関係する可能性もある。
コントロールパネルの「プリンタの追加」?
0107デフォルトの名無しさん
NGNG本当にナウなヤングはSHGetFolderPathだろ
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGそういう資料があるサイト知ってる方、教えて下さい。
多分、WinSock絡みの処理になるのかなーWinSock使った事ないなーとか考えつつ(;;´Д`)ハァハァしてます。
0110デフォルトの名無しさん
NGNGlibcdaudio を使えば出来るらしい。
http://cdcd.undergrid.net/libcdaudio/
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG通信内容見てみればやってることは簡単にわかるけど、たしかライセンスいるよ
CDDB ライセンス でぐぐってみ
0113デフォルトの名無しさん
NGNGあと音楽関係のソフトはオープンソースが多いから
直接ソース見ればいい
0114デフォルトの名無しさん
NGNGGracenote CDDB はライセンスが必要だが。
0115109
NGNGライセンスいるんですかー・・・。だよなー、そううまい話がある訳ないよなぁ・・・。
あとこれ、パッと見た感じGNUぽいですね。とすると、これ使ったら漏れもソース公開しなきゃならんって事ですか。
読みやすいコードに心がけなくては・・・。
0116デフォルトの名無しさん
NGNG単に、プリンタを使えるユーザーならプリンタを使える、
というだけな気がする。
0117デフォルトの名無しさん
NGNGGNU使う時は、その辺が嫌だね
いい加減に書いたソースでも公開しないといけない
0118デフォルトの名無しさん
NGNGメッセージループのメッセージのないところの処理に
DWORD lNowTime = GetTickCount();
static DWORD lOldTime = 0;
if( ( lNowTime - lOldTime ) > 2 ){
SetForegroundWindow( hWnd );
lOldTime = lNowTime;
}
〜処理〜
と書いたのですが、起動した後すぐにアクティブになるだけで
後はぜんぜんアクティブになってくれません。
常にアクティブ(最前面)にするにはどうしたらよいでしょうか?
0119デフォルトの名無しさん
NGNGそもそもlibaudiocdはWinじゃないだろ
0120デフォルトの名無しさん
NGNGSetWindowPos
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGDWORD lNowTime;
static DWORD lOldTime = 0;
lNowTime; = GetTickCount();
if( ( lNowTime - lOldTime ) > 2 ){
SetForegroundWindow( hWnd );
lOldTime = lNowTime;
}
0123デフォルトの名無しさん
NGNG常にアクティブ(最前面)って何やねん
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126118
NGNG>そもそもアクティブと最前面はまったく違う概念なわけだが
なんとなく違うということはわかるのですが・・・・、
フォアグラウンド、アクティブなどでしょうか?
詳しく説明しているサイトなどはありますでしょうか?
それと、キー入力(フォーカス?)を自分にもってくるということはできるでしょうか?
最前面にもってきてユーザーからの入力を求めるような感じの。
SetFocusで、できそうなのですができません。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG>あとこれ、パッと見た感じGNUぽいですね。とすると、これ使ったら漏れもソース公開しなきゃならんって事ですか。
GNUな部分だけDLLにして逃げる、という手もある。
その代わり、せっかく作るなら使いやすいDLL作れよ・・・
0129デフォルトの名無しさん
NGNGそれダウンロードできないしWindows用じゃない。
適当に検索して見つかったやつを内容も見ないで無責任に教えたんだろう。
0130デフォルトの名無しさん
NGNGWindows用じゃなくても、ソースを見れば何やってるか見当が付くだろう?
0131デフォルトの名無しさん
NGNGわざわざWindows用じゃないやつのソース見んでも
Windows用のソースがいくらでもある。
0132デフォルトの名無しさん
NGNGどこに?
0133デフォルトの名無しさん
NGNGいくらでもあるなら、なんで教えてあげないの?
0134デフォルトの名無しさん
NGNG「powrprof.h」と「powrprof.lib」を使用してビルドを行うと
リンクの時点で
error LNK2001: 外部シンボル "
"unsigned char __stdcall WritePwrScheme(unsigned int *,char *,char *,struct _POWER_POLICY *)"
(?WritePwrScheme@@YGEPAIPAD1PAU_POWER_POLICY@@@Z)" は未解決です
とエラーが発生しビルドできません。
「powrprof.h」と「powrprof.lib」のバージョンが合っていないのでしょうか?
そうだとしたらVC++6でビルドできる「powrprof.h」と「powrprof.lib」は
どうやって入手すればよいのでしょうか?
ちなみに
CanUserWritePwrScheme()でも同一リンクエラーが発生します
0135デフォルトの名無しさん
NGNGhttp://www.gracenote.com/gn_japan/cddb.html
0136デフォルトの名無しさん
NGNG> http://www13.cds.ne.jp/~wstar/n/cddb2.dml
Windowsのソース?
> http://www.gracenote.com/gn_japan/cddb.html
製品
0137デフォルトの名無しさん
NGNGそもそも、素のVC6に「powrprof.h」と「powrprof.lib」ってあったっけな・・・
とりあえず、>>2のPlatformSDK updateしてみたら?
0138デフォルトの名無しさん
NGNG>素のVC6に「powrprof.h」と「powrprof.lib」ってあったっけな・・・
VC7にあるのを使ってますが、蛇道ですか?
0139デフォルトの名無しさん
NGNG>>104
亀レスでスマソ
LogonUserのAPIでいけそうです
で、そのLogonUserのパラメータへ設定するドメイン名/ユーザー名/パスワードを
事前にチェックようと思いまして、
NetUserChangePasswordで新旧パスワードを一緒にしてチェックをしてみたんですけ
ど、
該当ドメインに参加してない端末から、ユーザ名/パスワードが正しいかをチェック
しようとすると
ERROR_CANT_ACCESS_DOMAIN_INFO(1351)というエラーが返却されるんですが、
他にユーザ名/パスワードをチェックする方法ってあったりするんでしょうか?
0140デフォルトの名無しさん
NGNGこれはどうだ?
extern "C" {
#include <powrprof.h>
}
0141デフォルトの名無しさん
NGNGべりーないす!ありが�d!
0142デフォルトの名無しさん
NGNGスゲー 美しくは無いけどその発想に脱帽
0143デフォルトの名無しさん
NGNG常套句なんだがなあ
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG入力できないようにするにはどうしたらよいでしょうか。
0148デフォルトの名無しさん
NGNGGracenoteのサンプルあっさり動いた。
ライセンスまだ届いてないけどいいのか?
0149デフォルトの名無しさん
NGNG戻ってきた時、レジスタ eax, edx, ecx を破壊していませんか?
たとえば
GetSystemMetrics(SM_CXSCREEN);
と呼んでみた時です
デバッガで、この関数の前後でのレジスタの変化をみました
この関数は
windef.h や winuser.h の中で
#define CDECL _cdecl
#define WINAPI CDECL
int WINAPI GetSystemMetrics(int nIndex);
と宣言されているようです
返り値のために eax が破壊されるのはわかるのですが
てっきり edx, ecx は保存されていると思っていた…
WINAPI は、eax, edx, ecx を破壊する呼び出し規約でしょうか?
0150デフォルトの名無しさん
NGNG確か x86 用の VC++ (Microsoft の C/C++ コンパイラ) の ABI では、
関数呼び出しで ebp 以外の汎用レジスタはどれも破壊しても構わない
ことになっていたような気がする・・・bcc でも同様でしょう。
0151デフォルトの名無しさん
NGNGマウスカーソルを消したいのですが、どうすればいいでしょうか?
ShowCursor(true)は、ウィンドウ外に行くとマウスカーソルが表示されてしまいます。
SetCursor(NULL)とやってみましたが、マウスカーソルが消えすらしませんでした。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGSetCapture(hWnd);
ShowCursor(false);
こう書いてみましたが、メインフレームからはずれると消したマウスが表示
されてしまいます。
0155デフォルトの名無しさん
NGNG天才のあなたなら答えがわかるのではありませんか?
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG無理だという事なんでしょうか?
それともただのなじりでしょうか?
理解しかねます。。。
0158デフォルトの名無しさん
NGNGはやくおかあさんにみてほしいなとおもっていたら、けんじくんがぼくのえを
びりびりとやぶってしまいました。おかあさんにきょうはどんなことをしたのと
きかれたので、みんなでなわとびをしたといいました。
0159デフォルトの名無しさん
NGNGエディットボックスに半角英数しかはIME起動しなくすればよさそうだけど
コピペできちゃうから
0160デフォルトの名無しさん
NGNGeax/edx/ecx: 破壊してもよい
ebx/esi/edi: 破壊しちゃだめ
となっております。
Windows だけじゃなくて、i386 で動く UNIX でも全部そうなってる。
0161デフォルトの名無しさん
NGNG透明なマウスカーソルで置き換えられるか試そうと思います。
0162デフォルトの名無しさん
NGNGそんなアプリを使わされたらブチ切れそうってことではないかとw
0163デフォルトの名無しさん
NGNG他APのSetCursor とか WM_SETCURSOR とかをフックすればできるとは思います。
逆にかならずマウスカーソルを表示させるために同様のことをするAPと同時に動くと、
動作は不定なのだろうけれども。
>>162
タッチパネル付きモニタとかで使う業務用端末とかじゃないの?
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGやってみたらとんでもないことに
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGまた、通常のデフォルトのフォントサイズの値を教えてください。
0169デフォルトの名無しさん
NGNG自由に入力させて、入力を全部チェック
入力文字を調べて、'a'〜'z'か'A'〜'Z'か'0'〜'1'以外の値なら削除
0170デフォルトの名無しさん
NGNG拠点を構え、業績急上昇中!未経験者大募集中!の
ソフトウェア開発会社
グリーンシステムを応援するHPです。
http://www.geocities.jp/grs_hp/
応援するスレはこちら!
http://school4.2ch.net/test/read.cgi/job/1077432387/
最高の会社にするため、みんな頑張ってます!
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGDrawTextで文字を書くと、
文字の背景に白い四角形がでてきます。
文字だけを表示するためにはどうすればよいのでしょうか。
ビットマップの上にさらにビットマップを重ねるときは、
透過処理用のビットマップを用意してBitBltで重ねるのは知っているのですが。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGつうかこんなのググれば一発なのに。
0176デフォルトの名無しさん
NGNGTextOutなら上手くいった記憶あり。
0177172
NGNGすみません。
でも私はこれで30分以上詰まってたので、
大変助かりました。
0178デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNGすでにわかってるやつにしかわからないという無意味さにワロタ
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNGオパクエだろ
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGそれ逆だからっ!
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGそれ逆じゃないか?
0194デフォルトの名無しさん
NGNGshlwapi
ちなみにこれはWin98/2kかIE4以降でないと入っていない。
0195デフォルトの名無しさん
NGNG逆だから
>>194
そのヘッダーはインクルードしてんだけど、リンク時になんかStrToIntExAが未解決って
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG「shlwapi」
「そのヘッダーはインクルードしてんだけど」
0198デフォルトの名無しさん
NGNGインポートライブラリをリンクしろ。
ところで188ではint→charを聞いているがStrToIntExはchar→intだぞ。
0199デフォルトの名無しさん
NGNGなにむきになってんの?
0200デフォルトの名無しさん
NGNGsprintf
・INT->LPTSTR
wsprintf
・char * -> int
atoi
・LPTSTR->INT
_ttoi
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGSetDlgItemIntしてGetDlgItemText
0210デフォルトの名無しさん
NGNG文字配列をソートするのに、LBS_SORTなリストボックスにぶちこんでから
取り出していた奴は実在する。
0211デフォルトの名無しさん
NGNGGDI+ではブラシなどがアルファ値をもつので普通の描画操作(Polygonなど)で
できると思うのですが、GDIでこれをやるにはメモリを直接書き換えるしかないの
ですか?
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG異常者は?
0214デフォルトの名無しさん
NGNGSetPixcel()
0215デフォルトの名無しさん
NGNG某VBマガジンでソートの実装が面倒なときはこんな事もできると紹介されていたな
0216デフォルトの名無しさん
NGNG異常者!無理じゃねーか
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNGあほ
0219デフォルトの名無しさん
NGNGWS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU,
を指定して作ったウインドウの、クライアント領域を600に固定したいときの、
nHeightの指定の仕方を教えてください。
#define WINDOW_TATE (600 + SM_CYFRAME + SM_CYMENU)
では、少しクライアント領域が広くなるようです。
0220デフォルトの名無しさん
NGNGAdjustWindowRect
0221デフォルトの名無しさん
NGNG0222デフォルトの名無しさん
NGNG出来たみたいだからいいけど、
> #define WINDOW_TATE (600 + SM_CYFRAME + SM_CYMENU)
明らかに使い方間違ってないか?
0223デフォルトの名無しさん
NGNG普通にリソースエディタを使ってダイアログベースのアプリを作ってます。
それで、メインのダイアログにメニューをつけようとしてるんですが、
リソースにメニューを挿入し、そのメニューのIDを
メインダイアログの「プロパティー」の「一般タブ」から
指定してあげてもテストプレビューでメニューがまったく表示されません。
なにか他に必要な設定などはあるのでしょうか?
それともテストでは見えないものなんでしょうか?
0224223
NGNGそういう仕様なのかな…
0225デフォルトの名無しさん
NGNG途中で落ちるので、調べた結果、CreatePen() の廃棄洩れがあったのですが、
何回かは廃棄洩れがあっても動きます。何が満杯になると落ちるのか、分かり
ますか。
0226デフォルトの名無しさん
NGNGXPにも9xよりはるかに数字は大きいが上限はある
0227デフォルトの名無しさん
NGNG原因は「破棄のし忘れでリソース不足に陥っていること」だろう。
破棄をきちんとすればいいこと。
0228デフォルトの名無しさん
NGNGどうすればできるでしょうか。
C言語、borlandのコンパイラで作成しています。
0229デフォルトの名無しさん
NGNG見えないウィンドウって意味なら表示させなきゃすむわけだが。
0230デフォルトの名無しさん
NGNGLayered Window
0231デフォルトの名無しさん
NGNGするような文字列の取得を行うプログラムを作るにはどうすればいいのでしょうか?
対象プログラムのタイトルとか各コントロールの文字列を取得するのは分かったんだけど、
クライアント領域を手動でコピーするような操作が分からない
不可能なのでしょうか?
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNGうまくできません。
というより、どうすれば良いのかよくわかりません。
とりあえず、再変換構造体PRECONVERTSTRINGとか
ImmSetCompositionString()を使うって
ところまではわかったのですが…。
実際これを使ってどうすれば良いのでしょうか?
0234ほんたま
NGNGVC++で自分でつくったDLLの関数を同じ方法で呼び出そうとすると、「DLL何に○○のエントリーポイントが見つかりません」というメッセージが出て呼び出せないんだ…
おみゃ〜らよ、自分でつくったDLLとwindows付属のDLLとは、どっか構造が違うのかな?
windows付属のDLLと同じ構造のDLLを自分でつくるにはどうすればいいの?
教えてくだされ〜♪
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGDLL 作るとき extern "C" した?
0237デフォルトの名無しさん
NGNGDependency WalkerでDLLがエクスポートしている関数を見るとき、
自作DLLの関数を見ると、"_hoge@4"のように呼び出し規約に従った接頭・接尾文字が
エクスポートされているように見えるんだが、
たとえばKernel32.dllのGetProcAddressはそのまま"GetProcAddress"でエクスポートされている感じ。
この違いは何が原因?
0238デフォルトの名無しさん
NGNG0240237
NGNG一応ソース自体も.cなファイルなので、ヘッダでは
#ifdef _cplusplus
extern "C" {
#endif
なんて書いてるんだけど…
0241236
NGNGごめん、__stdcall も必要かもしれない。
extern "C" __declspec(dllexport)
int __stdcall Func(...)
こんなんだっけな。
0242デフォルトの名無しさん
NGNGマクロ化しておけばいいだろう。
ちなみに .c なら extern "C" はいらないよ。
0243237
NGNGdefファイルを書けばいいのですね。
0244236
NGNGなんども間違えてすまんな。
MSDN で __stdcall を調べてみれば分かると思うけど、
__stdcall には @ がつくんだ。
これをなくそうと思ったら .def ファイルで定義する必要があったと思う。
0245デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGおみゃ〜らよ、system32フォルダにあるDLLの関数を呼び出すには、インポートセクションにDLL名と関数名を書き込んでいくだけで、呼び出せるんだが、
VC++で自分でつくったDLLの関数を同じ方法で呼び出そうとすると、「DLL何に○○のエントリーポイントが見つかりません」というメッセージが出て呼び出
せないんだ…
おみゃ〜らよ、自分でつくったDLLとwindows付属のDLLとは、どっか構造が違うのかな?
windows付属のDLLと同じ構造のDLLを自分でつくるにはどうすればいいの?
教えてくだされ〜♪
0249219
NGNG間違っていました。
#define WINDOWS_TATE 600
HWND hWnd;
int y1, y2, y3;
y1 = GetSystemMetrics(SM_CYFIXEDFRAME);
y2 = GetSystemMetrics(SM_CYCAPTION);
y3 = GetSystemMetrics(SM_CYMENU);
hWnd = CreateWindow(〜〜〜〜〜〜, WINDOWS_TATE + y1 + y2 + y3 ,〜〜〜);
が正しいと今の自分は思っています。
GetSystemMetricsで値を得る前に#defineで定義してはまったくだめですね。
0250228
NGNGウインドウの背景を透明化させたいです
最初にNULL_BRUSHを指定したの時のように(これはただ塗りつぶさないだけのようですが。。)
>>230
詳細がのっているところはありませんか?
0251デフォルトの名無しさん
NGNG>詳細がのっているところはありませんか?
MSDN
0252デフォルトの名無しさん
NGNGSetLayeredWindowAttributes
0253デフォルトの名無しさん
NGNGこの関数を使うと「デフォルトのメールクライアントが設定されていないか〜」と、
なぜかOutlookを起動するように促すメッセージが出てきます。
ここだけコメントアウトすると何も無いので、この関数に間違い無いと思います。
英語のページしかなかったので、自力でヘッダファイルを探して、mapiutil.hに宣言があったのでincludeしたのですが、これが問題なんでしょうか…
言語は、C++(をC言語として利用)で、テストに数値を書き出している段階なのでWinMainではなくmain関数から実行しています
因みに、メーラーはAl-Mailを使っていて、OEは使ってません
0254デフォルトの名無しさん
NGNG半透明をサポートしたいならUpdateLayeredWindow()が基本。
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGPE ヘッダの内部のセクションとかそういうの?
PE ヘッダなんてまともに調べたことなかったな。
しかし、__declspec とかした方が早いような気がするのは
俺だけか。
0257230
NGNGms-help://MS.PSDK.1033/winui/winui/windowsuserinterface/windowing/windows/usingwindows.htm#layered_win
0258デフォルトの名無しさん
NGNG0259228
NGNGMSDNライブラリには
SetLayeredWindowAttributesがのっていたんですね
無事透明化できました。
しかし透明化(のカラーキー)の場所でマウスクリックが取れません。
これは仕方のないことなんでしょうか?
0261デフォルトの名無しさん
NGNG__declspec(dllexport)
は関数の外部に公開するというだけで、公開名にはノータッチ。
stdcall なら当然 _hgoe@4 のまま公開される。
_ と @n を削除したければ def ファイルを書くしかない。
0262デフォルトの名無しさん
NGNG廃棄じゃなくて破棄だってばさ。
0263デフォルトの名無しさん
NGNGできたみたいだからいいけど、枠線は上と下にあるよ。
0265デフォルトの名無しさん
NGNGファイルをDLしようとすると
こんなエラーが出てきてしまいます。
2週間前に新しく買ったパソコンで
最初は何もしなくても解凍出来てたみたいなのですが
何かをいじってしまったらしく…
これを元の設定に戻す方法
初期化以外にあれば教えてください。
0266デフォルトの名無しさん
NGNGPC初心者板池
0267デフォルトの名無しさん
NGNG飯塚さん、恐らくunlha32.dllを削除したのでしょう。
0268デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG左上にアイコンを表示せず、でも、右上に×ボタンは表示したいのです。
このような場合、どのようにしたらいいのでしょうか。
RegisterClass()の引数では、wndclass.hIconをNULLにしています。
CreateWindow()の引数では、WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_DLGFRAME
としているのですが、WS_SYSMENUを指定した時点で、アイコンが出てしまいます。
逆に指定しないと×ボタンが出てこないという...。
0271デフォルトの名無しさん
NGNG意味のない拘りを捨てればよいと思います。
0272デフォルトの名無しさん
NGNG1週間ぐらい前に似たような質問をどっかのスレで見た
0273デフォルトの名無しさん
NGNGタイトルバーの名前も消しておかないと、飯塚さん
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNG天才!!
0276デフォルトの名無しさん
NGNGっVCLベースのダイアログ
0277デフォルトの名無しさん
NGNGどうせなら、スクリーン全体に貼らなきゃ。
0278デフォルトの名無しさん
NGNGGetCurrentDirectoryだと、ファイル選択のダイアログとかで変化するし、
GetCommandLineはファイル名しか取得してないみたいです
WinMainからだと、起動時にGetCurrentDirectoryでパスを取得して、それをずっと保持しておくだけでしょうか?
0279デフォルトの名無しさん
NGNGタイトルバーの色を変えてますた
とか
タイトルバーがグラデってますた
という状況を考えると透明アイコンのほうがいい
0280デフォルトの名無しさん
NGNGGetModuleFileName
0281デフォルトの名無しさん
NGNG異なる場合もある
0282デフォルトの名無しさん
NGNGおお、出来た。
ありがとうございます。
0283270
NGNGそれだとCAPTIONの左側に空白ができちゃいます。
>>276
VCLはわからないですけど、CreateWindow()するのではなく、
リソースとして空っぽの無駄なダイアログを用意しておき、
CreateDialog()で生成したウィンドウをこねくり回すいう逃げは
あるかなと。
ただ、アイコンのないウィンドウスタイルっていうのがあるのなら、
それを使った方がスマートではないかなと質問してみた次第です。
0284デフォルトの名無しさん
NGNGCreateDialogで作ったモーダレスダイアログですが、
このダイアログのプロシージャを別ファイルに分割してコンパイルしようとした所、
エディットボックスなどのコントロールのIDが正しく受け取れず
定義されていない識別子ですというエラーがでます。どうしてでしょうか?
分割せずに一つのソースで書いてたときは上手くいっていたのですが…
クラスとかにはしていなくて、普通の関数のようにただソースを分割しているだけです。
///////////////////////////
BOOL CALLBACK DlgProc(HWND hwDlg,UINT msg,WPARAM wp,LPARAM lp)
switch (msg) {
case WM_INITDIALOG:
SetDlgItemText(hwDlg,IDC_EDIT,"aaa");
return TRUE;}
:
:
///////////////////////////
プロシージャのプロトタイプ宣言はヘッダファイルでしてます。
0285デフォルトの名無しさん
NGNGDelphi/BCB製アプリのダイアログをSPY++等で見てみれ。
Del/BCBのライブラリはダイアログをCreateWindowで作ってる。
0286デフォルトの名無しさん
NGNGIDC_EDIT自体をヘッダで宣言しろ。
0287デフォルトの名無しさん
NGNGCreateWindowEx でよければ,WS_EX_TOOLWINDOW があるけど。
ただこの場合,どうしても最大化/最小化ボタンは現れないみたい。
0288284
NGNGありがとうございます。リソースのヘッダを読み込むの忘れてました。。。
完全に頭がボケてるようです。
ところで一つのソースにまとめて書いてたときのことですが、
下のようにウィンドウハンドルをグローバルにしたとき正しく渡らないのはなぜでしょうか。
この場合コンパイルは通りましたが、エディットボックスには何も表示されませんでした。
////////////////////////////////////////////////////////////////////
HWND g_hwDlg;//グローバル
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);//プロトタイプ
////メイン関数
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{略
g_hwDlg =CreateDialog(hInst, "Dialog", hWnd, (DLGPROC)DlgProc);//生成。同時にハンドルをグローバルに
略}
////ダイアログのプロシージャ
BOOL CALLBACK DlgProc(HWND hwDlg,UINT msg,WPARAM wp,LPARAM lp)
switch (msg) {
case WM_INITDIALOG:
SetDlgItemText(g_hwDlg,IDC_EDIT,"aaa");//←グローバルのハンドルを指定
return TRUE;}
:
:
///////////////////////////
0289デフォルトの名無しさん
NGNG本当にぼけているようですね?
WM_INITDIALOG が呼ばれるのはどのタイミングですか?
0290デフォルトの名無しさん
NGNG0291284
NGNG0292ほんたま
NGNGちなみにWM_CREATEのときメッセージボックスを表示すると、タイマーイベントが発生するんです。
でもメッセージボックスを取っ払うと、発生しなくなるんです…
どうして?教えてくだされ〜♪
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNGBOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);//プロトタイプ
////メイン関数
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{略
CreateDialog(hInst, "Dialog", hWnd, (DLGPROC)DlgProc);//生成
略}
////ダイアログのプロシージャ
BOOL CALLBACK DlgProc(HWND hwDlg,UINT msg,WPARAM wp,LPARAM lp)
switch (msg) {
case WM_INITDIALOG:
g_hwDlg = hwDlg; //ハンドルをグローバルに
SetDlgItemText(g_hwDlg,IDC_EDIT,"aaa");//←グローバルのハンドルを指定
return TRUE;}
:
:
0295デフォルトの名無しさん
NGNGDLL関数の呼び出しって普通のクラス関数(非インライン)呼び出しと比べて
オーバーヘッドが大きいんでしょうか?
一回の処理で何百回も呼び出す予定なんですが差はどれくらい出るでしょうか?
0296デフォルトの名無しさん
NGNG実験してみればいいじゃん
0297295
NGNGWindowsXPSP1
VC++6.0SP6
です。
0298デフォルトの名無しさん
NGNGスレッドが走ってる状態でそのスレッドハンドルをCloseHandleしていいのでしょうか?
試しにスレッドを作成しスレッド処理の最初でCloseHandleしてみたのですが
その後の処理も走っています。
この場合スレッドハンドルにアクセス(WaitForSingleObjectとか)出来ないだけで
スレッド自信は有効ということなのでしょうか?
0299デフォルトの名無しさん
NGNGその通り
0301デフォルトの名無しさん
NGNGマウスの移動範囲を限定できる命令を教えてください
CまたはC++でxp、VC.netです
0302デフォルトの名無しさん
NGNG形を変えるならSetCursor、位置を指定するならばSetCursorPosなど。
0303デフォルトの名無しさん
NGNGレス有り難うございます
マウスカーソル位置を指定した位置に表示することでした
早速試してみます
0304デフォルトの名無しさん
NGNG試してやるから開発環境(ハード・ソフト)をオレにゆずれ
0305デフォルトの名無しさん
NGNGCまたはC++でxp、VC.netです
0306デフォルトの名無しさん
NGNGマウスが離されたら、そういうイベントが飛んでくるに決まってるだろうが。
0307デフォルトの名無しさん
NGNGフック?
0308デフォルトの名無しさん
NGNG終了させるにはどうしたらいいでしょうか?
WM_CLOSEを送った後に、そのメッセージボックスの「はい(Y)」ボタンをクリックさせる方法を
思いついたのですが、常套手段ではないような気がしましたので。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGTextMetrics()で確認すると、デフォルトの情報しか返ってきません。
なぜでしょうか?
0311デフォルトの名無しさん
NGNG>>307
ウィンドウプロシジャ関数内でWM_LBUTTONUPの場合で検出してたのですが
ウィンドウプロシジャ関数内でいろいろいじると変数の取り扱いが複雑になるので
マウスを離すことを検出できる命令ないかなと思ったんですが
0312デフォルトの名無しさん
NGNGウインドウプロシージャから別の関数を呼べば解決する問題の気がする。
設計・考え方を見直すべきでは?
0313310
NGNGTextMetrics() -> GetTextMetrics()
0314デフォルトの名無しさん
NGNGSetWindowPosなどは高さや幅を指定するのが面倒くさいので
単に移動後の左上のXY座標を入力するだけで
その位置に移動してくれるような命令はないでしょうか。
0315ほんたま
NGNGおみゃ〜らよ、なぜ宇宙一すげーかわかるかな?
おみゃ〜らよ、おりはな、「Visual C++」で自作したDLLをスリムドカンでつくったプログラムから呼び出すのに成功したんだよ!わかる?
おみゃ〜らよ、DLLを呼び出すプログラムを「Visual C++」」でつくるには、Libファイルをリンクに設定したり、ヘッダファイルをインクルードしたりとやるべきことは多いだろ?
おみゃ〜らよ、DLLを呼び出すプログラムを「HSP」でつくるにも、やはりDLLの他に「.as」ファイルが必要だよ。
だが、「スリムドカン」の場合、DLLの他には一切何も必要ないんだな〜う〜ん、これが…自分じわかる?
つまり「スリムドカン」の場合、DLLさえあればDLLを呼び出すプログラムがビルドできるってわけ♪
おみゃ〜らよ、おりは宇宙一画期的だと思わないか?
おみゃ〜らよ、宇宙一すげ〜とわめいたのはそういうことよ♪
おみゃ〜らよ、自分じどうじ?
0316デフォルトの名無しさん
NGNG自分で作れ
0317308
NGNG0318デフォルトの名無しさん
NGNGSWP_NOSIZE
0319デフォルトの名無しさん
NGNGウインドウプロシージャと直接関係のない関数の中のローカル変数がウインドウプロシージャで必要になるので
そのローカル変数をグローバル変数にしないとウインドウプロシージャ内で利用できないのです
0320デフォルトの名無しさん
NGNGGetTextMetrics()にはDCのハンドルを指定するわけだけど、
DCの属性は、CS_OWNDCとかを指定しない限り、
最初はデフォルトの情報が選択されているからじゃないかな。
違っていたらスマソ
0321デフォルトの名無しさん
NGNG掛かるんで、描画が始まったら disable にしようと、EnableWindow() を
使って見たが、効かない。何を使えばいいでしょうか。TBS_... てものあるが
頭に血が上って、英語を読めません。
0322デフォルトの名無しさん
NGNG頭の血を下げろ
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG聞くだけ聞いてやろう、開発環境は?
0325デフォルトの名無しさん
NGNGだから、「あるコードの実行中まさにそのコードでマウスのボタンが上がって
いるか」は判別できるけれども、「あるコードの実行中まさにその実行中の
コードでマウスのボタンが上げられた」かどうかを判別できるわけがない。
これはOSに関係ない、時間の概念の問題だろう。
「マウスが上げられた瞬間に、ある指定した関数を呼び出してほしい」という
ことであれば話は別だろうが。
0326デフォルトの名無しさん
NGNGなんだけどなあ。Win32 としては基本中の基本の処理だ。
後は、設計の問題。設計のまずさをAPIでカバーしようとするのは
本末転倒だろう。
もしゲームだったら DirectInput も調べてみたら。
0327デフォルトの名無しさん
NGNG>>326
WM_LBUTTONUP 使うかDirectInput使うかのどっちかにします
レスありがとうございました
0328デフォルトの名無しさん
NGNG子ウィンドウも閉じられますが、
このとき、子ウィンドウにWM_CLOSEは送られるのでしょうか。
たとえば、Objectをいちいちdeleteするのが面倒で、
WM_CLOSEのときにまとめてdeleteするようにしていたときなど、
このオブジェクトはちゃんと全部消されるのか心配です。
こんなコードを書いていたのですが。
0329デフォルトの名無しさん
NGNG{
HDC hdc, hBuffer;
PAINTSTRUCT ps;
RECT rect;
static HBITMAP hBitIcon[30];
switch(msg){
case WM_CREATE:
hBitIcon[0] = LoadBitmap(((LPCREATESTRUCT)lParam)->hInstance, (LPCSTR)IDB_BITBLACK);
//以下Icon用bitmapをどかどか呼び出す
break;
case WM_LBUTTONDOWN:
SendMessage(GetParent(hWndOL01), WM_CLOSE, NULL, NULL);
//左クリックされたら、親ウィンドウを破棄。もちろんこのウィンドウも破棄される
case WM_CLOSE:
for(int i = 0; i < 30; i ++){
DeleteObject(hBitIcon[i];
} //ココ、これが呼び出されないと困る。
DestroyWindow(hWndOL01);
break;
default:
return(DefWindowProc(hWndOL01, msg, wParam, lParam));
}
return 0;
}
0330デフォルトの名無しさん
NGNG0331310
NGNGおれの解釈が違ってるみたい…。
コントロールの描画は、フォントが指定されていなければデフォルトが使われて、
指定されていればそのフォントで描画。
という解釈であってますか?
0332デフォルトの名無しさん
NGNGあるウィンドウに属するオブジェクト類は
特別な理由が無い限り
WM_CREATE オブジェクトの作成
WM_DESTROY オブジェクトの破棄
と考えると良い。
WM_CLOSE はウィンドウに対しての終了要求メッセージ。
しかし、これに対して拒否することも出来る。
ただし、トップレベルウィンドウにしか送られない。
WM_DESTROY が送られてきたらもう終わるしかない。
0333510
NGNGウインドウにテキストを描画するのと、コントロールがテキストを描画するのは
全くの別物である。という解釈で良いですか?
>>328
おれなら親にWM_DESTROYが送られたときに、
SendMessage()で子にもWM_DESTROYを送ってそこで処理します。
0334デフォルトの名無しさん
NGNG>おれなら親にWM_DESTROYが送られたときに、
>SendMessage()で子にもWM_DESTROYを送ってそこで処理します。
明示的に送らなくても親に WM_DESTORY 送った後に子供にも送られる。
0335310
NGNGWNDPROC fnDefProc;// グローバル
LRESULT CALLBACK ParentProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
static HWND hButton;
switch(msg) {
case WM_CREATE:
hButton = CreateWindow("BUTTON", "PUSH", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
0, 0, 100, 100, hwnd, (HMENU)1, ((LPCREATESTRUCT)lp)->hInstance, NULL);
fnDefProc = (WNDPROC)GetWindowLong(hButton, GWL_WNDPROC);
SetWindowLong(hButton, GWL_WNDPROC, (LONG)ButtonProc);
break;
case WM_DESTROY:
// SendMessage(hButton, WM_DESTROY, wp, lp);
MessageBox(hwnd, "Parent", "end", MB_OK);
PostQuitMessage(0);
break;
default: return DefWindowProc(hwnd, msg, wp, lp);
}
return 0;
}
LRESULT CALLBACK ButtonProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
if(msg==WM_DESTROY) MessageBox(NULL, "Child", "end", MB_OK);
return CallWindowProc(fnDefProc, hwnd, msg, wp, lp);
}
0336デフォルトの名無しさん
NGNGMessageBox()の第一引数は飾りではない。
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNG直接SendMessageしてはいけない。
0340321:trackBar
NGNGどうも。WM_SETREDRAW は効かない。当座の凌ぎに ShowWindow() を使っておく
ことにしたが、バシャッと、皆お隠れになって、ドキッとするね。dim 化で
残したいよ。(下手に活かしておくと、弄られて、描画が起動されるし、busy
にして受け付けないと、freeze 見たいに見えるし)
>>322
TBS_NOTHUMB なんてあるから、隠した thumb を復帰するコマンドがあるだろうと
探しまくったがない。初期設定のみらしい。こんなん何に使うんだ。
頭に来た。まだ下がらない。
0341デフォルトの名無しさん
NGNGウィンドウにテキストを描画する場合も、コントロールにテキストを描画する場合も、
描画の前にまずデバイスコンテキストを取得する点では同じだと思う。
取得した時点では各属性はデフォルトのままなので、そこからフォント等の属性を
設定することになるわけだけど、属性を設定した後のデバイスコンテキストが
取得できない限り、GetTextMetrics()ではデフォルトの値が返ってくるだけだと思う。
0342デフォルトの名無しさん
NGNGウインドウのサイズ変更にあわせてリストビューのサイズを変えたいんですが
SetClassLongやSetWindowLongではできそうもないんで。
0343デフォルトの名無しさん
NGNG>>120
0344デフォルトの名無しさん
NGNG伊達にWindowsと名乗ってるわけではない
0345デフォルトの名無しさん
NGNGそれらを取得するAPIはありますでしょうか?
0346デフォルトの名無しさん
NGNGそれもあるかもしれないけど、
WindowsのWindowsたる所以は、シグナル駆動ではなくメッセージ駆動であるということだろう。
WindowsがUnixに勝っている部分のひとつだと思うのだが、認めようとしないUnix支持者。
0347デフォルトの名無しさん
NGNGX11はメッセージ駆動じゃないの?
0348デフォルトの名無しさん
NGNGそっとしておいた方がいいよ。
0349デフォルトの名無しさん
NGNGがリサイズしてくれるような機能があるかどうかを聞きたいのではないかと
思ったんだけど。
0350デフォルトの名無しさん
NGNGエスパーな解釈だな・・・
そう思うなら、答えてあげれば良いのに
0351デフォルトの名無しさん
NGNGMFCならCodeGuruにCResizerなんてのがあって便利そうだけど。
#それ使っても、結局WM_SIZEやWM_GETMINMAXINFO辺りは自前で処理しないといけないけど。
0352デフォルトの名無しさん
NGNGGetWindowText( hwnd, buffer, sizeof( buffer ) ); //A
GetWindowText( hwnd, buffer, sizeof( buffer ) -1 ); //B
APIにはバッファサイズを聞いてくるものが多いですが、
AとBではどちらが正しいのでしょうか
日本語ヘルプだとなんだか変なので、英語のヘルプを
読む限りAが正しい気がするのですが、ネットにはBのサンプルも
多い気がして混乱しています。
0353デフォルトの名無しさん
NGNG[in] Specifies the maximum number of characters to copy to the buffer, including the NULL character. If the text exceeds this limit, it is truncated.
0354デフォルトの名無しさん
NGNG(大抵の)API の説明にあるように、最後の NULL キャラクタを含むサイズを指定するわけだけれども、
引き続く処理でいいい加減で良いから楽したい場合には、あらかじめ ZeroMemory しておいた上で
sizeof(buffer) / sizeof(TCHAR) - 1 を指定して必ず 0 ターミネートのストリングを得たりする手もある。
いい加減じゃマズイ場合には、GetWindowTextLength とか使ってちゃんと文字数文の領域を用意したりする。
0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNGバッファサイズが足りないときは殆どのAPIがそうなんじゃない?
ZeroMemory じゃなくて末尾だけ 0 入れとけば十分だけどね。
0357352
NGNGレスありがとうございます。
しかしうーん、例えば「abc」というWindow名を持ったhwndに
char buf[3] = { 'X', 'X', 'X' };
GetWindowText( hwnd, buf, sizeof( buffer ) );
とやると、bufの中身はちゃんと「ab」であり、終端子も入っています(Windows2000)。
私としては>>352のBは必要のない処理である、で結論づけたい気もするのですが…。
或いは過去の遺物か何かなのかなぁ。
いずれにせよ皆さんお付き合い感謝です。
0358デフォルトの名無しさん
NGNG× GetWindowText( hwnd, buf, sizeof( buffer ) );
○ GetWindowText( hwnd, buf, sizeof( buf ) );
0359デフォルトの名無しさん
NGNG0360デフォルトの名無しさん
NGNGたいてい最後は0が入るよ。lstrncpyさえも。
MSDNの説明はこんな感じ
> [out] Pointer to the buffer that will receive the text. If the string
> is as long or longer than the buffer, the string is truncated and
> terminated with a NULL character.
0361デフォルトの名無しさん
NGNG(幅を変えると出て来たり消えたり、とても微妙な調整をしないと表れなかったり。)
どういった可能性が考えられますでしょうか。
もしくはきちんと左揃えとかで表示するようにはできないでしょうか。
0362デフォルトの名無しさん
NGNG漏れが多用する GetModuleFileName やら MultiByteToWideChar やらは NULLキャラクタ
付けてくれないんで、殆どそうなのかと思い込んでた。
0363デフォルトの名無しさん
NGNGソース汚いから人に見せれないやつも多いのに
ソース公開するのはそれなりの自信がないとできないだろ。
くだらないことにこだわって時間無駄にするより、
少しでも役に立つコード書いた方がよっぽどまし
0364デフォルトの名無しさん
NGNG幅が狭いと省略される
広くすれば出るだろう
0365デフォルトの名無しさん
NGNGそういう意識がバグを生む。
0366デフォルトの名無しさん
NGNGどもです。なんかスタイル構造体のLVCF_FMTメンバを有効にしてたのに
それを実際にどれにするか設定してないのが悪いみたいでした。
きちんとメンバをlv.fmt = LVCFMT_LEFT;みたく設定したら上手くいきました。
0367デフォルトの名無しさん
NGNG[test] 書き込みテスト 専用スレッド 24 [テスト]
http://qb5.2ch.net/test/read.cgi/operate/1099168555/
↑のスレッドに"書き込む"という文字を書き込みたいのですが。
ERROR:ユーザー設定が消失しています!と言う結果になり、失敗してしまします。
以下のコードをどのようにすれば、書き込めるようになるでしょうか・・。
0368デフォルトの名無しさん
NGNGvoid kakikomi();
void kakikomi()
{
HINTERNET hInternet;
HINTERNET hHttpSession;
HINTERNET hHttpRequest;
char CokkieText[1000];
DWORD CokkieTextSize = 0;
// wininetを初期化
hInternet = InternetOpen("Monazilla/1.00",INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
// サーバへ接続
hHttpSession = InternetConnect(hInternet, "qb5.2ch.net",INTERNET_DEFAULT_HTTP_PORT,
NULL, NULL,INTERNET_SERVICE_HTTP, 0, 0);
// HTTP要求の作成
//「書き込む」をURLエンコードした結果→%8f%91%82%ab%8d%9e%82%de
hHttpRequest = HttpOpenRequest(hHttpSession, "POST",
"test/bbs.cgi?submit=%8f%91%82%ab%8d%9e%82%de&FROM=&mail=&MESSAGE=%8f%91%82%ab%8d%9e%82%de&bbs=operate&key=1099168555&time=0",
NULL, "http://qb5.2ch.net/operate/index2.html", NULL, INTERNET_FLAG_RELOAD, 0);
//クッキー取得
HttpQueryInfo(hHttpRequest,HTTP_QUERY_COOKIE,CokkieText,&CokkieTextSize,NULL);
// 作成したHTTP要求の発行
HttpSendRequest(hHttpRequest, CokkieText, -1, NULL, 0);
InternetCloseHandle(hHttpRequest);
InternetCloseHandle(hHttpSession);
InternetCloseHandle(hInternet);
}
0369デフォルトの名無しさん
NGNGImmSetConversionStatus()だと反映されません
http://support.microsoft.com/default.aspx?scid=kb;ja;419357
にはIME98はダメと書いてあるんですが・・
他の方法があるという事なんでしょうか
0370デフォルトの名無しさん
NGNGとりあえず通信は成立してるようだからwininetは問題なし
あとは送ってるデータの問題なんでスレ違い
ツール使って荒らすやつがいるからいろいろチェックしてる。
0371デフォルトの名無しさん
NGNG?????
MSDNのGetModuleFileNameの解説より
lpFilename
[out] Pointer to a buffer that receives a null-terminated string
that specifies the fully-qualified path of the module. If the length
of the path exceeds the size specified by the nSize parameter,
the function succeeds and the string is truncated to nSize characters
and null terminated.
0372デフォルトの名無しさん
NGNG一度も2chに接続してないクライアントから書き込むと
「クッキー送信する云々」というメッセージが出るだろ?
君の作ったコードだとその儀式を通過していない訳だ。
0373デフォルトの名無しさん
NGNG猿にエサ与えるなよ。ヴォケ
0374デフォルトの名無しさん
NGNGこっちで聞いた方が良いと思われ
http://pc5.2ch.net/test/read.cgi/tech/1098912550/
0375デフォルトの名無しさん
NGNGというよりこっちだろ。
http://pc5.2ch.net/test/read.cgi/tech/1057329161/
0377デフォルトの名無しさん
NGNG実際に↓みたいなコードで試してみればすぐにわかるけど、最後に 0 なんか付けてくれないよ。
TCHAR szPath[4];
GetModuleFileName(NULL, szPath, 4);
っていうか、msdn にはこうあるけど・・・
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/getmodulefilename.asp
lpFilename
[out] Pointer to a buffer that receives a null-terminated string that specifies the fully-qualified path of
the module. If the length of the path exceeds the size that the nSize parameter specifies, the function
succeeds, and the string is truncated to nSize characters and "cannot be null terminated".
もしかして漏れ(バッファが足りないと0付かないよ派)が正しくて、>>360とかも勘違いか嘘なんじゃないの?
0378デフォルトの名無しさん
NGNGAPIにより付いたりつかなかったりする。
少なくともlstrncpyは必ず付く。
0379デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGドキュメント読んで、かつ試してみた。lstrホゲは末尾に0付けてくれる。GetWindowTextも。
0382デフォルトの名無しさん
NGNGドキュメント読む限りだとERROR_INSUFFICIENT_BUFFERに
なりそうだけど実際にそうなるの?
0383デフォルトの名無しさん
NGNG渡すってどういう状況?
0384デフォルトの名無しさん
NGNG0が付くかのテストする為だろ。空気嫁。
0385デフォルトの名無しさん
NGNG値も入れることができました。
しかしアイテム(セットした値)の取得方法が分かりません。
LVM_GETITEMを使えばいいことまでは分かったのですが・・・。
ググっても全然載ってません。。
LVM_GETITEMでリストビューからアイテムを取得する簡単なサンプルを
お教え頂けないでしょうか。
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNGListView_GetItem()が使えると思う。
ListViewのhWndとLVITEM構造体のポインタを渡すのだが、
LVITEM構造体のiItemとiSubItemが行と列になる。
0388デフォルトの名無しさん
NGNGAdjustWindowRect(&r, WS_OVERLAPPED | WS_MINIMIZEBOX | WS_SYSMENU,TRUE);
CreateWindowにr.right - r.leftとr.bottom - r.topを渡す。
AdjustWindowRectの使い方ってこれで合ってますでしょうか?
正しいサイズが求まらないんですが…
0389デフォルトの名無しさん
NGNG拡張スタイルがあるならAdjustWindowRectEx。
あとメニューの折り返しが起きる場合は駄目だった希ガス。
0390実行してないよ
NGNGLVITEM lvitem; //<さぁって情報を得て世界に羽ばたくぞ〜
lvitem.mask = LVIF_TEXT | LVIF_STATE; //<今回はセットした「文字列」と「状態」を取得すっかね
lvitem.iItem = 3; //<リスト3番目の・・・
lvitem.iSubItem = 0; //<最初の列っと
lvitem.stateMask = LVIS_SELECTED; //<「状態」は色々あるけど、今回は選択されているかどうかが知りたいの
char buffer_text[256]; //<おっといけねぇ
lvitem.pszText = buffer_text; //<「文字列」を取得するなら入れ物がねぇとな
lvitem.cchTextMax = sizeof(buffer_text); //<APIたんはバカだから、入れすぎないよう「文字列」の長さも指定っと
::SendMessage( hwnd_dialog, LVM_GETITEM, 0, (LPARAM)&lvitem ); //<APIたん、こいつで頼むよ
//ListView_GetItem( hwnd_dialog, &lvitem ); //またはこいつで
if( lvitem.stateMask & LVIS_SELECTED ); //おー入ってる入ってる
OutputDebugString( buffer_text ); //さんきゅう、APIたん
0391デフォルトの名無しさん
NGNGif( lvitem.state & LVIS_SELECTED );
OutputDebugString( buffer_text );
0392デフォルトの名無しさん
NGNGやりたいことは特定ウインドウの低レベルキーボードフックです。
つまり左右のShiftやCtrlキーの区別を取れるフックがしたいのです。
しかしどうやってもスレッド単位のフックができません。
下のように記述(hwndはフックしたいウインドウのハンドルです)しても
hookには0しか返ってきません。つまりフック失敗です。
hook = SetWindowsHookEx(WH_KEYBOARD_LL, HookProc, GetWindowLong(hwnd, GWL_HINSTANCE), GetCurrentThreadId());
しかしシステム単位のフックならできるのです。
下のように書くと、hookには0以外の値が帰ってきて、OS全体がフックできてしまいます。
hook = SetWindowsHookEx(WH_KEYBOARD_LL, HookProc, GetWindowLong(hwnd, GWL_HINSTANCE), NULL);
しかしやりたいのはスレッド単位の低レベルキーボードフックなのです。
低レベルキーボードフックというのは、システム単位でしかできないものなのでしょうか?
※ちなみに低レベルじゃないキーボードフックの場合はスレッド単位でもできました。
0393sage
NGNGフックプロシージャが現在のプロセスに関連付けられているコード内に置かれているときは、
NULLを指定しなければなりません
0395393
NGNGSetWindowsHookExの3番目の引数のこと
0396デフォルトの名無しさん
NGNGありがとうございます。
インスタンスハンドルをNULLですよね?
しかしやってみましたがダメでした。
自己レスですみませんが、どうも低レベルキーボードフックはやっぱり
グローバルじゃないとできないみたいです。
GetLastErrorで1429が返ってきたのですが、
その説明が、
ERROR_GLOBAL_ONLY_HOOK
This hook procedure can only be set globally.
ということでした。
道理で、ネットを検索してみてもグローバルな例しか見つからない訳です。
失礼しました。
0397393
NGNG>WH_KEYBOARD_LL スレッド、または、システム
となっているが、MSDN最新 (microsoft.com)では
>WH_KEYBOARD_LL グローバルのみ
となってる。MSDNだけでも最新版使えってことか。
0398デフォルトの名無しさん
NGNG> Note that you cannot specify the WS_OVERLAPPED style.
って書いてあるので、WS_OVERLAPPEDは指定しない方がいいのでは?
0400デフォルトの名無しさん
NGNG0401ほんたま
NGNGマニュアルを見るとSYSTEMTIME構造体のメンバは、
年
月
曜日
日
時
分
秒
ミリ秒
と書いてあるんです。
でも実際にSYSTEMTIME構造体にアクセスして先頭から順番に値を表示してみると、
月
曜日
日
時
分
秒
ミリ秒
0?(不明)
の順番にメンバが並んでいるのが正しいのではないかと思うんです。
そこんとこどうなっているのかお聞きしたいんですが…?
教えてくだされ〜♪
0402ほんたま
NGNG何故かSYSTEMTIME構造体の先頭番地より2バイト前のアドレスを読むと、年が正しく取得されることが判明しました!
だからメンバの並び方はマニュアル通りで良かったのですが…
みなみなさまがた〜、何故SYSTEMTIME構造体の先頭番地より2バイト前から値がセットされるのでしょうか?
教えてくだされ〜♪
0403デフォルトの名無しさん
NGNG0404ほんたま
NGNGつーか実際にはSYSTEMTIME構造体の構造はこう↓なってるんではないかと…
予備領域
年
月
曜日
日
時
分
秒
ミリ秒
でGetLocalTime(&SYSTEMTIME)と呼び出すと、自動的にSYSTEMTIME+2番地から値がセットされていくんではないかと…
どうでしょうか〜みなみなさまがた〜♪
0405デフォルトの名無しさん
NGNG0406ほんたま
NGNGPREバイトというのは、おりがいま思い付いた概念で、構造体の先頭番地の前に何バイトかの領域を持っていて、
最初のメンバはそこから始まるようにしたもののことを言う。
マイクロソフトのことだから、PREバイト付きの構造体という概念を持っていてもおかしくはない…
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNGtypedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNGこれって何かのコピペ?
0411デフォルトの名無しさん
NGNG65536年問題が心配だな
0412ほんたま
NGNG最初のwYearはDWORDってことはないか?
そうすればすべてがつじつま合うんだが…
ドキュメントの書き間違いかもしれんぞ。
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGアクセスの仕方に問題がある悪寒。
0415デフォルトの名無しさん
NGNGかもしれんじゃなくて実際にあるのだが?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csref/html/vcwlkstructstutorial.asp
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG0418416
NGNGでも、イマイチなににつかうかわからない・・・。
0419デフォルトの名無しさん
NGNGグローバルアトムは比較的簡単にプロセスをまたぐ文字列のやり取りに使える。
ウィンドウクラスのアトムはCreateWindow(Ex)でクラス名の文字列を指定するよりこっちを使う方が俺は好き。
ローカルアトムは……、何に使えばいいんだ?2バイトケチるためか?
0420デフォルトの名無しさん
NGNGdoubleでも使っとけ、クソが。
0421デフォルトの名無しさん
NGNG0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG例えば1*2のビットマップで(255,255,255)と(0,0,0)なら(128,128,128)みたいな感じです。
正確さよりも処理の速さを優先したいです。
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG1. MMX 命令で自前の処理を書く
2. Intel の IPP 等を買ってきて使う
3. DirectX のテクスチャにして、ミップマップの自動生成機能を利用する
どれでも適切なやり方でどうぞ。
0426ほんたま
NGNG>アクセスの仕方に問題がある悪寒
おみゃ〜はどうせ、マイクロソフトのコンパイラが定義してくれてる値を使って、SYSTEMTIME->wYearとかSYSTEMTIME->wMonthみたいなアクセスの仕方しか経験ないだろ?
だからwYearが何番目のメンバかwMonthが何番目のメンバかなんて考えたこともないだろ?
そういうのは隠蔽されているからな w♪
ところがおりは違う。
おりはマシン語を直接使っているので、wYearが何番目のメンバかwMonthが何番目のメンバかを知らないと、プログラミングできないわけだ。
だから[SYSTEMTIME][SYSTEMTIME+2]というようなアクセス方法を使う。
ところがメンバが2バイトずつ前にずれていることが判明したので、疑問に思ったわけだよ。
まあ、これはプログラミングにおける最高度の超絶技巧なので、カプセル化されたプログラミングしか知らないおみゃ〜には想像もつかないだろうがな…♪
自分じわかる?
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG0429414
NGNG長レスに敬意を表して、釣られてみよう。残念ながらハズレ。
さすがにフルアセンブラはご無沙汰だが、今でも一部インラインで組むことくらいはある。
ていうか、コンパイラしか使ってなくてもデバッグの時にアセンブルソースくらい見ると思うけど。
それはともかく、
> マシン語を直接使っているので
↑このあたりの表現が気になった。実は偉大なお方?
0430ほんたま
NGNGというのもおりは、[SYSTEMTIME]の先頭アドレスの値をまずECXレジスタに読み込み、その値を16ビット右シフトして、次にCXレジスタの値を作業用のバッファにセットしていたんだよ。
なぜ右シフトしたかといえば、ファイル表現で考えてECXレジスタの上位16ビットに先頭アドレスの値が、下位16ビットに次のアドレスの値がはいっていると勘違いしていたのよ。
とろこがこれは逆だったんだな…!
だから右シフトするのをやめて、そのままCXレジスタの値をセットしたら、うまくいったというわけよ。
やっぱPREバイトとかドキュメントが書き間違ってるとかなかったよ。
マイクロソフトのドキュメントは正しかったよ…。
おりとしたことが、とんだミステイクだったよ♪
おみゃ〜らよ、自分じすまんな…どうじ?
0431414
NGNG0432デフォルトの名無しさん
NGNGもっと基本から勉強しろよ
0433デフォルトの名無しさん
NGNGできたらいいな
0435デフォルトの名無しさん
NGNG1列目しか項目を選択及び編集ができず、2列目以降は選択もできない状態です。
以下、ソースです・・・。原因わかります?
case WM_NOTIFY:
if ((int)wp == LISTVIEW) {
lvinfo = (LV_DISPINFO *)lp;
switch (lvinfo->hdr.code) {
case LVN_BEGINLABELEDIT:
hEdit = ListView_GetEditControl(hList);
break;
case LVN_ENDLABELEDIT:
GetWindowText(hEdit, buf, sizeof(buf));
ListView_SetItemText(hList, lvinfo->item.iItem, 0, buf);
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
col.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
col.fmt = LVCFMT_LEFT;
col.cx = 100;//列の幅 ピクセル単位
col.pszText = TEXT("社員ID");
col.iSubItem = 0;
ListView_InsertColumn(hList, 0 , &col);
int z;
z = 1;
col.iSubItem = z;
col.pszText=TEXT("氏名");
ListView_InsertColumn(hList, z , &col);
z++;
0436デフォルトの名無しさん
NGNGだからそれを「速くやる」方法について話してるんだろ。
0437デフォルトの名無しさん
NGNG今の小学生は3桁以上の計算は出来ません。
0438デフォルトの名無しさん
NGNG除算は最後の一回だけだし、
加算はループで足し算するんだが、普通に足すより速くはならんぞ。
乗算とか入らないなら、MMXも必要ない。
第一、こんな質問してくるレベルの人間にはそれで十分だ。
0439デフォルトの名無しさん
NGNGなにひとりでカッカしてんの?
0440デフォルトの名無しさん
NGNGリストビューは1列目のラベルしか編集できない。
0441デフォルトの名無しさん
NGNG馬鹿か?それはお前の思い込みに過ぎんぞ。
この程度のことでカッカする方がどうかしている。
お前がこういう文章を書くときはカッカしている時だからといって、
他人までそうだと思わないことだ。
0442デフォルトの名無しさん
NGNG何カッカしてんの?
0443デフォルトの名無しさん
NGNGと言いたいが面白いのでもっとやれ
0444デフォルトの名無しさん
NGNG編集は一列目だけ。
選択の方は、こんな感じで。
ListView_SetExtendedListViewStyle(_hWnd, LVS_EX_FULLROWSELECT);
>>442
そういうことにしたいのですね。勝手にそう思ってれば?
0445デフォルトの名無しさん
NGNG見た感じ>>438と>>423はだいたい同じレベルだと思うんだけど。
・どちらも平均とは何かについては知っている
・高速に処理する方法は知らない
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNGRGB各プレーンそれぞれの単純平均だと赤とシアンの平均がグレイになるんだけど。
グレイであることが保証されてるなら単一プレーンだけの平均ですむし、
平均輝度とか平均彩度とか、何が要求されているのかよく判らんね。
0448デフォルトの名無しさん
NGNG算術平均以外の平均なら、ほげほげ平均とかって明記するんじゃない?
ってのはともかく、アルゴリズム的には>>438の言うように足して割るのが最適だから、
あとは>>425の言うように実装手段でアレコレするしかない。
0449デフォルトの名無しさん
NGNG全ピクセルの平均をとるなら、データスキャンして普通に加算するのが一番速い。
画像をロードした瞬間にわかるって言ってもいいぐらい。
今時のCPUなら、アセンブラ化してもほとんど変わらないよ。
0450デフォルトの名無しさん
NGNGMMX使っても速くならんぞ?
テクスチャにするなんて論外だ。転送にめちゃくちゃ時間がかかる。
それともバイリニアで縮小画像を作ることを考えているのだろうか?
0451デフォルトの名無しさん
NGNG今時のCPUはキャッシュミスの際のペナルティが(そうでない場合との比較で)大きいから、
メモリをスキャンするときにアセンブラでちゃんとプリフェッチを入れれば簡単に+10%位にはなるよ。
Intel Compiler とかなら勝手にやってくれるかもしれんが。
0452デフォルトの名無しさん
NGNGあとは精度落としていいならサンプル間引くぐらいしかないんじゃないか。
0453デフォルトの名無しさん
NGNGそこまでの最適化を必要としている奴が、>>423みたいな質問よこすか?
「ここまでやって、これが限界でしょうか」というのなら、
極限までの最適化方法を教える努力をするけどね。
0454デフォルトの名無しさん
NGNG>あとは精度落としていいならサンプル間引くぐらいしかないんじゃないか。
業務向けにマトモな高速化案キタ━━━━━━(゚∀゚)━━━━━━ !!
そういえば画像処理で画素間引いたりして高速化するのは定石だな・・
0455デフォルトの名無しさん
NGNG整数「加減算」だけならMMXを使う必要はないって。
通常のアセンブラでも同時計算は可能。
間引くのは有効だけど、そもそも画像をメモリへロードする方が重いので、
そこまで気にするのがちょっと疑問。
0456デフォルトの名無しさん
NGNGなんでそんなに偉そうなの?
0457デフォルトの名無しさん
NGNG偉いから。
0458デフォルトの名無しさん
NGNGこれが Win32 API スレであることを考えると、たぶん真っ当な答えは
・Bitmapがある程度大きい場合には、GetDIBits 等で DIB として取り出し、
ピクセルフォーマットに従ってメモリ値を読み出して平均をとる。
(可能であれば最初から DIB として画像を保持しておくべき)
・Bitmapが 1x2 とか小さい場合には、GetPixel で RGB 値を取り出して平均をとる。
・"ビットマップ"というのが画像ファイルのことであれば、LoadImage で DIBSection にして、
GetObject で DIB と BITMAPINFOHEADER を取得してアレコレする。
っていうような感じなんだろうなぁ。
0459デフォルトの名無しさん
NGNGttp://www.emit.jp/prog/prog_b.html
> v2 = (v0 & v1) + (((v0 ^ v1) & 0xfefefefe) >> 1);
なんでこれで平均がでるの?ワケワカラン
0460デフォルトの名無しさん
NGNGでしたのでお願いします。
Windows2000やXPなんかでは、LANケーブルが抜けている場合
タスクトレイにネットワークのアイコンが出てLANケーブルが
抜けていることがわかりますが、プログラム上からLANケーブルが
抜けていることを特定する方法はないでしょうか?
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGS = 繰り上がりを無視した加算結果 (v0 ^ v1)
C + S は足すと普通の加算になる。右に1シフトする(2で割る)と平均になる。
(S は各バイトの最下位ビットが立っている可能性があるから、0xfefefefeでマスクしておく)
精度は低く速度も遅いがわかりやすい代替物は、
((v0 >> 1) & 0x7f7f7f7f) + ((v1>>1) & 0x7f7f7f7f)。
0463デフォルトの名無しさん
NGNG>>462
目からウロコが10枚くらい出た
0464デフォルトの名無しさん
NGNG>>1 クリックしてしもた
0466デフォルトの名無しさん
NGNGCOBOL 出る前ってこんなんばっか見たいだった気がする。なつかしい。
0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGこのスレのどこかに同じような質問なかったっけ?
0470デフォルトの名無しさん
NGNG戻り値は 87「パラメータが間違っています」となります。
SP1以前は正常に動作していました。
SeBackupName 特権は取得しています。
0471デフォルトの名無しさん
NGNGipconfig で分かる
0472デフォルトの名無しさん
NGNGSetStretchBltMode(hdc,HALFTONE);
して
StretchBltしたほうが速いと思う。
DDBならハードウェアアクセラレーションが効くかもしれない。
0473デフォルトの名無しさん
NGNGif(HIWORD(wParam) == BN_XX)
みたいなのを探していたのですがありませんでした。
0474デフォルトの名無しさん
NGNG0476460
NGNGCable Disconnected って直接的に取得は出来ない気がします。
何を持って Cable Disconnected 状態なのか特定できないものでしょうか?
これってWin32APIよりMFCかな・・・
0477デフォルトの名無しさん
NGNGヒューマンインターフェースデバイス(HID)ではHidD_GetHidGuidでゲットしたのですが…
御教示おねがいします。
0478デフォルトの名無しさん
NGNGWindowsシステムにどのようなメッセージが用意されているのか
MSDNで探したいのですが、
urlないし検索のためのキーワードを教えてください。
0479デフォルトの名無しさん
NGNGソースもらうしかねえだろな
あとアプリ定義のメッセージもあるわけだが
それはどーするんだ?
0480478
NGNGすみません、上にありました。
しかし178個って、これで全てなんでしょうか。
なんだか少ないように思ったのですが。
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGビットマップなどの絵を表示する方法を教えてください。
0483デフォルトの名無しさん
NGNGBM_ とか CB_ みたいに WM_ で始まらないのもいっぱいあるぞ
0484デフォルトの名無しさん
NGNG>>89
>>91
0485デフォルトの名無しさん
NGNGBS_BITMAPとかBS_ICON、もしくはBS_OWNERDRAW
0486デフォルトの名無しさん
NGNG自作メッセージって、どの辺の範囲使っておけば、MSのライブラリと競合しないものなの?
自作メッセージって結構使うんだけど、新しくコントロール追加した時に競合しないか心配だったりする
0487デフォルトの名無しさん
NGNGありがとうございます。調べてみます。
0488デフォルトの名無しさん
NGNGWM_APP以降を使っておけば、とりあえず競合はしないので安心。
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNGどもです。
既に作ったプログラムを直すのは面倒ですが、次からはそれ以降で作ります
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG3rdParty製の
0495ごめん、途切れた
NGNG0496423
NGNGお察しの通り私は知識も経験も少ない初心者なのでとてもためになりました。
デジカメサイズのビットマップ200枚ほどの平均色を求めたかったので速さにこだわっていました。
適当に間引きながら足し算で求める方法でアプローチしてみます。
0497デフォルトの名無しさん
NGNGIJLってもう無料で入手不可能なんだったか?
0498デフォルトの名無しさん
NGNG表示させたいんだけど、どうやって押されたキーのコード取得するんですか?
0499デフォルトの名無しさん
NGNG画像の色計算より
読み出しとかにかかる時間のほうが支配的だと思うから
速度気にしなくていいんじゃないかな。
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG((a++&0xf8f8f8)>>3)+((a++&0xf8f8f8)>>3)+((a++&0xf8f8f8)>>3)+((a++&0xf8f8f8)>>3)+((a++&0xf8f8f8)>>3)+((a++&0xf8f8f8)>>3)+((a++&0xf8f8f8)>>3)+((a++&0xf8f8f8)>>3)
で、int32 *a のRGBデータの8点平均。
2のべき乗ならこのやりかたがはやいよー。
0502501
NGNGシフトは足した後で一括でやろう。
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG些細な高速化の割には精度ガタ落ちだから、素直に>>459を7回やったほうが良いような気がする・・例↓
#define Ave2(a,b) (((a) & (b)) + ((((a) ^ (b)) & 0xfefefefe) >> 1))
#define Ave4(a,b,c,d) Ave2(Ave2(a,b), Ave2(c,d))
#define Ave8(a,b,c,d,e,f,g,h) Ave2(Ave4(a,b,c,d), Ave4(e,f,g,h))
0506デフォルトの名無しさん
NGNGスレ違いの話題はこの辺に
続きをやりたければ、画像処理スレか最適化スレにでもどぞ
0508デフォルトの名無しさん
NGNGBMP特有の操作じゃないだろ?
0509501
NGNGね。
0510501
NGNG申し訳ないです。
悪気は無いんです。
許してね。
遠慮せずに書き込んでねー。
0511デフォルトの名無しさん
NGNG親ウィンドウの部分は再描画されるのですが、
子ウィンドウの部分は真っ白になってしまいます。
子ウィンドウも描画させるにはどうしたら良いでしょうか。
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNGOnDrawとかOnPaintで描いてないとかそんなんじゃ
0514デフォルトの名無しさん
NGNG汚いコードですが、こんな感じです。
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND hChild01;
PAINTSTRUCT ps;
HDC hdc, hBuffer;
static HBITMAP hBit01;
switch (msg)
{
case WM_CREATE:
hBit01 = LoadBitmap(((LPCREATESTRUCT)lParam)->hInstance, (LPCTSTR)IDB_BITMAP1);
MyRegisterClassDefault(((LPCREATESTRUCT)lParam)->hInstance, Child01, szChild01);
hChildOL01 = CreateMyWnd(IDhChild01, hWnd);
ShowWindow(hChild01, SW_SHOW);
break;
case WM_PAINT:
hdc = BeginPaint(hWndOpen, &ps);
hBuffer = CreateCompatibleDC(hdc);
SelectObject(hBuffer, hBitMAP1);
BitBlt(hdc, 0, 0, 800, 600, hBuffer, 0, 0, SRCCOPY);
DeleteDC(hBuffer);
EndPaint(hWndOpen, &ps);
break;
}
(つづく)
0515デフォルトの名無しさん
NGNGLRESULT CALLBACK ChildProc(HWND hChild01, UINT msg, WPARAM wParam, LPARAM lParam)
HDC hdc, hBuffer;
PAINTSTRUCT ps;
static HBITMAP hBitKuro;
switch(msg){
case WM_CREATE:
hBitKuro = LoadBitmap(((LPCREATESTRUCT)lParam)->hInstance, (LPCTSTR)IDB_Kuro);
break;
case WM_PAINT:
hdc = BeginPaint(hChild01, &ps);
hBuffer = CreateCompatibleDC(hdc);
SelectObject(hBuffer, hBitKuro);
BitBlt(hdc, 0, 0, 200, 120, hBuffer, 0, 0, SRCCOPY);
EndPaint(hWndOL01, &ps);
break;
}
プログラムを始めて3週間なのですが、
いきなりMFCを覚えたほうが楽でしょうか?
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNGあー WM_GETDLGCODE じゃだめか。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGMFC覚えた方が楽かも知れんが、そのコードを理解しながら
書いたんなら、そのまま一本位 API でプログラム書いてみたら。
基礎を勉強することは悪いことではない。
0521デフォルトの名無しさん
NGNGうっかり消しただけかもしらんが、ChildのhBufferをDeleteしてないよ。
それによってhBitKuroのSelectが2回目以降失敗しているのではないかな?
0522デフォルトの名無しさん
NGNGカスタムコントロールについて調べてみたんですが、これは
・所定の位置にウィンドウを作る
・ボタン、スライダのグラフィックを自作する
・カスタムコントロール用のプロシージャにて、マウスクリックのメッセージを受け取ったら
その時の位置に応じて動いた場合の動作を決定する。つまりボタンの位置を常に把握し
位置関係の判定を全部やらなくてはならない
という方針で良いのでしょうか?もっと効率良い方法があるのならご教授頂ければ幸いです。
イメージとしてはこんなカンジです。
・スライダをクリックしてドラッグした場合:
+----+----+----+----+----+----+----+----+
0 5 10 15 20 25 30 35 40
-+----+----+----+----+----+----+----+----
5 10 15 20 25 30 35 40
(左へ4メモリスクロールさせた場合。右に隠れていた4つの目盛りが現われる)
・ボタンをクリックしてドラッグした場合:(ボタン:*とする。複数存在可能)
+----+----+--*-+----+-*--+--*-+----+----+
↑を左へクリック&ドラッグした場合
+----+-*--+----+----+-*--+--*-+----+----+
↑ここへ動く
0523デフォルトの名無しさん
NGNG+----+----+----+----+----+----+----+----+
0 5 10 15 20 25 30 35 40
-+----+----+----+----+----+----+----+----
5 10 15 20 25 30 35 40
+----+----+--*-+----+-*--+--*-+----+----+
↑を左へクリック&ドラッグした場合
+----+-*--+----+----+-*--+--*-+----+----+
↑ここへ動く
今度こそうまくいくかな(´・ω・`)
0524デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG以下を実行する:
int main(void) {
DWORD dwThreadId;
LPTHREAD_START_ROUTINE lpStartAddress = ThreadFunction;
for ( DWORD i = 0 ; i < 2; i++ ) {
::CreateThread(
NULL,// セキュリティ
0,// スタックの大きさ
lpStartAddress,// 開始する住所
&i,// パラメター
0,// スレッドの状態
&dwThreadId// スレッドID
);
}
}
// スレッド函数
DWORD ThreadFunction(LPVOID pParameter){
DWORD* pdwInteger = (DWORD*) pParameter;
TRACE( "%u\n", *pdwInteger );
return 0;
}
これで,
ThreadFunction(0)
ThreadFunction(1)
が実行されることを期待したいけど,なぜか
ThreadFunction(1)
ThreadFunction(1)
が実行される.
どうしてなん?
0527デフォルトの名無しさん
NGNGCreateThread() した瞬間に新しいスレッドが走り出すわけではないか
ら。つーか、最近同様の質問を見た覚えがあるぞ…
0528526
NGNGスレッドをどのタイミングで走るわけ?
また,俺の意図どおりに動かすにはどうしたらええん?
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG最初のスレッドが情報を取得したことを親スレッドに何らかの方法で通知する。
親スレッドはそれを受けてから次のスレッドを起動する。
0531デフォルトの名無しさん
NGNGありがとうございます。頑張ってみます。
>>521
が正解でした。
各入門書や入門ページで口を酸っぱくして言われている、
「必ずGDIオブジェクトを削除しなければならない」
の意味がやっと分かりました。
0532デフォルトの名無しさん
NGNG> &i,// パラメター
の説明をしてもらおうか。
>>531
> 「必ずGDIオブジェクトを削除しなければならない」
> の意味がやっと分かりました。
たぶんまだ分かってないと思う。
0533デフォルトの名無しさん
NGNG作ったスレッドが動き出すのは、少なくとも、最初のコンテキストスイッ
チよりは後だろうよ。
そもそも、自動変数のアドレスをスコープを越える可能性のある関数に
渡しちゃダメでしょ。
一番簡単なのは、
CreateThread:
&i,==>reinterpret_cast<void*>(i),
ThreadFunction:
TRACE( "%u\n", *pdwInteger );
==>TRACE("%d\n", reinterpret_cast<int>(pParameter));
0534デフォルトの名無しさん
NGNGそのコードは移植性ないと思うんだが
VC++だとインクリメントの順番が副作用完了点を挟まなくても
別途保証されてたりするのか?
0535デフォルトの名無しさん
NGNGされてないけど、501みたいなへたれコードは誰も書かないから問題ないよ。
遅いし。
0536デフォルトの名無しさん
NGNGUpdateLayeredWindowに関する質問です
デスクトップマスコットのようなウィンドウを
UpdateLayeredWindowを使って描画しています
αチャネルを使って透明化する部分は全く問題ないのですが、
既に配置済みのボタンやコンボボックスが
UpdateLayeredWindowで指定したイメージで上書きされてしまい、表示されずに困っています
(実際、配置はされていて、マウスイベントなどは問題なく処理できます)
最終手段として、
コントロール以外をカラーキーで透明化したウィンドウと
イメージをαチャネルで透明化したウィンドウを2枚重ねて動かそうと考えましたが、
他によい方法があるのではないかと思い投稿しました
良い方法をご存知の方がいらっしゃいましたら、よろしくお願いします
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNGUpdateLayeredWindow使ったことないけど
イメージの上にコントロールにWM_PRINT送って描画してもらい、UpdateLayeredWindowするとか。
コントロールがクリックされたら、そのイメージを作ってUpdateLayeredWindowしなきゃならなそうだけど。
0539デフォルトの名無しさん
NGNG小さな子ウィンドをたくさん作成し、領域をはみ出るものについては
スクロールバーを出すことで対応したいと思っているのですが、
今、現在、ただ領域に子ウィンドウをたくさん作成すると
領域をはみ出てしまいます。
領域にスクロールバーを作ることはできたのですが・・・。
いい方法ありますでしょうか?
0540デフォルトの名無しさん
NGNGその領域を別Windowにして貼り付ける。
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGWS_CLIPCHILDREN
0543デフォルトの名無しさん
NGNG水平スクロールバーをつけちゃったりなんかしてみたのですが
スクロールバーが移動しません。
最後の質問にしますのでよろしくお願い致します
seru_hyouji_ryouiki = CreateWindow(
TEXT("STATIC"),TEXT("") ,
WS_CHILD | WS_VISIBLE | WS_BORDER |WS_VSCROLL |WS_CLIPCHILDREN,
100,150,
700,300,
hwnd,(HMENU)SERU_HYOUJI_RYOUIKI,
((LPCREATESTRUCT)(lp))->hInstance, NULL
);
scr.cbSize = sizeof(SCROLLINFO);
scr.fMask = SIF_PAGE | SIF_RANGE;
scr.nMin = 0;scr.nMax = 9;
scr.nPage = 2;
SetScrollInfo(seru_hyouji_ryouiki , SB_HORZ , &scr , TRUE);
scr.fMask = SIF_POS;
0544ほんたま
NGNG>ボタンに文章ではなくて、
>ビットマップなどの絵を表示する方法を教えてください。
文章?ボタンに小説書いてんの?
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG水平スクロールバーはWS_HSCROLLだよね。
WM_HSCROLLメッセージは正しく処理してる?
0547デフォルトの名無しさん
NGNGそのコード、続きはないの?
それだけだと範囲指定しただけで、位置を設定していないし。
0548デフォルトの名無しさん
NGNGあのコードはインクリメントの順番が保証されている事を要求しないと思うが。
0549デフォルトの名無しさん
NGNGまとめてインクリメントされるとアボーン。
0550デフォルトの名無しさん
NGNG感謝。
0551デフォルトの名無しさん
NGNGそんな処理系が有ったら恐い。
実例あるのか?
0552デフォルトの名無しさん
NGNGまとめてインクリメントされるのでは?
int a = 1;
int b = (a++) + (a++) + (a++) + (a++);
だと b = 4 で
int a = 1;
int b = (++a) + (++a) + (++a) + (++a);
だと b = 20 になる。
0553デフォルトの名無しさん
NGNG複数含んでいるコードの動作は未定義だったはずだよ。
0554デフォルトの名無しさん
NGNG未定義だな
0555デフォルトの名無しさん
NGNG結果の値が未定義
0556551
NGNGほんとだ。
失礼しました。
0557デフォルトの名無しさん
NGNGttp://www.kouno.jp/home/c_faq/c3.html
0558デフォルトの名無しさん
NGNGポインタに&演算してるし
0559552
NGNG0560デフォルトの名無しさん
NGNGwaveOutWriteがうまくいきません。
バッファとバッファの間に、ノイズ(音切れ)が入るのです。
16個のバッファにデータをとりあえずロードさせ再生させても起こります。
バッファに書く速度が間に合ってないわけじゃないみたいです。
2個目以降のバッファは、メッセージ着てから再生では遅いのでしょうか?
とりあえず、ソースの部分貼り付けます。
1個目再生
::waveOutPrepareHeader(m_hWaveOut,&m_pWaveHdr[0],sizeof(WAVEHDR));
::waveOutWrite(m_hWaveOut,&m_pWaveHdr[0],sizeof(WAVEHDR));
while(1)Sleep(1); // とりあえず待機(本来は、随時バッファ読み込み)
MM_WOM_DONE メッセージで、
::waveOutUnprepareHeader(m_hWaveOut,&m_pWaveHdr[m_nRingCursor],sizeof(WAVEHDR));
m_nRingCursor = (m_nRingCursor+1) % m_dwRingBufferSize;
::waveOutPrepareHeader(m_hWaveOut,&m_pWaveHdr[m_nRingCursor],sizeof(WAVEHDR));
::waveOutWrite(m_hWaveOut,&m_pWaveHdr[m_nRingCursor],sizeof(WAVEHDR));
メッセージのコールバックは、関数タイプです。
0561デフォルトの名無しさん
NGNG>2個目以降のバッファは、メッセージ着てから再生では遅いのでしょうか?
遅いよ。
用意したバッファは全部あらかじめ書き込んでおいて、
コールバックで使い終わったバッファに次のデータを用意して、
再び書き込む。
全部のデータを再生し終わるまで延々と繰り返す。
が、基本。
ちなみに、最低3個以上のバッファを作ることが推奨されているね。
0563デフォルトの名無しさん
NGNGどうしてでしょう?
CreateWindow(
TEXT( "BUTTON" ),
TEXT( "" ),
WS_CHILD | BS_OWNERDRAW,
0, 0, 200, 100,
hWnd,
(HMENU)1,
hInstance,
NULL
);
......
switch( msg ){
case WM_MEASUREITEM:
MessageBox( hWnd , TEXT("aaa") , TEXT("bbb") , MB_OK );
break;
}
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNG以下の機能がついています。
・チェックボックス
・入力欄
入力欄のところに実行した瞬間、文字列を転送するプログ
ラムを考えているのですが、どんな関数が必要になってき
ますか?
WindowFromPoint()は必要になるだろうと思ったのですが、
それ以上がいくら調べても分かりません。
入力欄のコントロールIDを得る関数があればいいのかなぁ
とか、色々考えて検索ずっとしてるのですが、そんなのないし・・・
これから先、検討がつきません。
どなたかお助けを・・・ M(._.)m
0566デフォルトの名無しさん
NGNGどのような、確認の方法がよいでしょうか?
0567デフォルトの名無しさん
NGNGAllocConsole
0568デフォルトの名無しさん
NGNGSetWindowText
って既出?
0569お助けお願いm(_ _)m
NGNGWindowsXPではGetSystemMetricsで検出できるのですが、
Windows2000でシャットダウン中を検出する事は可能でしょうか?
0570デフォルトの名無しさん
NGNGそれ使おうと思ったんすけど、
入力欄のコントロールIDが、同じプログラム内で
作ったものじゃないんで、わかんないのが前提なんっす・・・
レスありがとう
0571デフォルトの名無しさん
NGNGありがとうございます。
先ほどのプログラムを下のように書き直してみました。
ほかのところでの文字の表示は成功したのですがやはりWM_MEASUREITEMのところは通っていないような気がします。
それともAllocConsoleの使い方が間違っているのでしょうか?
CreateWindow(
TEXT( "BUTTON" ),
TEXT( "" ),
WS_CHILD | BS_OWNERDRAW,
0, 0, 200, 100,
hWnd,
(HMENU)1,
hInstance,
NULL
);
AllocConsole();
hStdOutput = GetStdHandle( STD_OUTPUT_HANDLE );
......
switch( msg ){
case WM_MEASUREITEM:
WriteFile( hStdOutput , TEXT( "aaaa" ) , 4 , 0 , NULL );
break;
}
0572デフォルトの名無しさん
NGNGCreateWindowの前にAllocConsoleしたほうがいいと思うけど。
ていうかBS_OWNERDRAWでそのメッセージが送られるってどこに書いてあるの?
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGBS_OWNERDRAW
オーナー描画ボタンを作成します。
オーナーウィンドウは、ボタンが作成されると WM_MEASUREITEM メッセージを受け取り、
ボタンの外観が変わると WM_DRAWITEM メッセージを受け取ります。
他のボタンスタイルと組み合わせることはできません。
0575デフォルトの名無しさん
NGNGオーナー描画ボタンを作成します。オーナー ウィンドウは、 ボタンが作成されるときに
WM_MEASUREITEMメッセージを受け取り、 ボタンの外観が変わったときにはWM_DRAWITEMメッセージを受け取ります。BS_OWNERDRAWスタイルは、 ほかのボタン スタイルと組み合わせることはできません。
と書いてあります。
0576デフォルトの名無しさん
NGNGCreateWindowのBS_OWNERDRAWの説明です。
0577デフォルトの名無しさん
NGNGBS_OWNERDRAW
Creates an owner-drawn button. The owner window receives a WM_DRAWITEM message
when a visual aspect of the button has changed. Do not combine the BS_OWNERDRAW
style with any other button styles.
0578デフォルトの名無しさん
NGNG試してみたけど、うちの環境でも WM_MEASUREITEM は送られてこないっすよ。
WM_MEASUREITEM の説明にも、そのようなことは書いてないし…。
0579デフォルトの名無しさん
NGNGやりたいことがよく分からないけど、
ウィンドウハンドルは WindowFromPoint() や ChildWindowFromPoint() で取得、
IDは GetDlgCtrlID() で取得するってのはだめっすか?
0580デフォルトの名無しさん
NGNGWM_ENDSESSION で検出するのはだめっすか?
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNGう〜ん、なんとか成功させてお礼を言いたいとこだったけど、
もう今日は限界・・・合歓いっす。
レスありがとう。わずかな希望が見えた気がしたでつ。
0583デフォルトの名無しさん
NGNGIDがなくともウィンドウハンドルがあれば十分だと思うが。
0584デフォルトの名無しさん
NGNGWindows 2000 ですが、実際にやって調べてみました。
HKCR\Software\Microsoft\Windows\CurrentVersion\Explorer
の Reason Setting と Shutdown Setting が変化するようです。
(どちらも DWORD 値)
シャットダウン
Shutdown Setting=0x00000002
Reason Setting=0x00000005
再起動
Shutdown Setting=0x00000004
Reason Setting=0x00000005
ログオフ
Shutdown Setting=0x00000001
Reason Setting=0x00000000
ちなみに、regmon という
レジストリ操作を監視するツールを使って調べました。
0585デフォルトの名無しさん
NGNGHKCR\Software\Microsoft\Windows\CurrentVersion\Explorer
Shutdown SettingとReason Settingのキーは無いようです。
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
には存在していましたので、こちらで試しています。
OSのシャットダウン時の処理なので、ちゃんと動くまで再起動しまくって
いるので時間かかるー(笑)
キーさえ分かればきっと情報があるはずだ、ということで検索してみた。
ttp://www.microsoft.com/windows2000/techinfo/reskit/en-us/regentry/36031.asp
これによると Shutdown Setting はあくまでダイアログでの選択値のようっす。
Reason Setting の方は見つからず。
0586デフォルトの名無しさん
NGNG他のソフトを使えば、30FPS出ているので、カメラ・PCの性能は十分あります
これは、VFWの仕様でしょうか?
それとも、プログラムのコードが問題あるのでしょうか?
0587デフォルトの名無しさん
NGNGcapPreviewRateやCAPTUREPARMSのdwRequestMicroSecPerFrameでの設定値を変えても、
capSetCallbackOnFrameで設定したコールバック関数の呼び出しタイミングが15FPSを切ってるという話です
0588デフォルトの名無しさん
NGNGLPSTR strText;
(中略)
GetOpenFileName(&ofn);
hFile = CreateFile(
(LPCTSTR)strFile , GENERIC_READ , 0 , NULL ,
OPEN_EXISTING , FILE_ATTRIBUTE_NORMAL , NULL
);
if (hFile == INVALID_HANDLE_VALUE) break;
strText = (LPSTR)malloc(GetFileSize(hFile , NULL));
ReadFile(hFile , strText , GetFileSize(hFile , NULL) , &dwBytes , NULL);
CloseHandle(hFile);
SetWindowText(hwnd , strFile);
SetWindowText(edit , strText);
指定して読み込んだパスのファイルを開いて、
エディタ(edit)に書き出すコードのつもりなのですが、
エラーなしですが、何も書き出せません。パスまでは読み込める状態です。
間違っていそうな部分を上げましたが、情報不足でしたらすみません。
お願いします。
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNGDWORD dwFileSize;
・・・
dwFileSize = GetFileSize(hFile , NULL);
strText = malloc(dwFileSize + 1);
ReadFile(hFile , strText , GetFileSize(hFile , NULL) , &dwBytes , NULL);
strText[dwFileSize] = '\0';
ところでchar/TCHARのハンガリアンはstrじゃなくてsz。どうでもいいことだが。
0592588
NGNGすみません。事故解決しますた。
edit がstatic になってませんでした。
NULLではなかったっぽいです。
ご迷惑かけました。
0593588
NGNG補足かたじけないです。
WindowsSoftのコードを参考にしたのですが。
それにしてもWinプラは型がややこしい。。。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG自分のウィンドウに来たメッセージ(マウスボタンの押下など)を
裏に隠れているウィンドウに伝える方法ってありますか?
SetWindowRgnでウィンドウに穴を開けると
穴の部分のウィンドウメッセージは裏にいるウィンドウに伝わりますが
穴が空いてない部分でも同じようにメッセージを伝えたいのです。
0596デフォルトの名無しさん
NGNGChasingArrows (ぐるぐる回転する矢印)を絵画するAPIはどれに相当するのでしょうか。
Macの場合はこれです。
Declare Function DrawThemeChasingArrows Lib "CarbonLib" (inBounds as Ptr, index as Integer, state as Integer, eUPP as Integer, userData as Integer) as Integer
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNGCreateAbout?AboutWindow?Aboutを表示する関数があった気がしたんですが
誰か分かる人居ませんか?
どっかにAboutが入ったAboutを表示する関数があった気がして・・
無いようでしたら、おとなしくDialogで作ります。
0600デフォルトの名無しさん
NGNG例えば、上にあるウィンドウが子ウィンドウならプロシージャに
SendMessage(GetParent(hWnd),msg,wParam,lParam);
って感じに、そのまま親ウィンドウにスルーしつつ、自分の処理もするとか
”伝える”って事は、自分で作ったウィンドウで隠れた場合だよね
親子関係じゃ無くても、下にあるウィンドウのハンドル取得して、同じようにすれば良い
VFW詳しい人って居ないのかな…
0601デフォルトの名無しさん
NGNGstatic TCHAR szAppName[] = TEXT ("SysMets1");という一文があったのです。
今までヨンたほかのwindowsプログラミングの書籍ではTEXT("")という表記がまったく使われていなかった(static TCHAR szAppName[] = "SysMets1";っぽい感じ)上に、プログラミングwindowsという書籍の索引を引いてもまったく解説されておらず困っています。
このTEXT("")というのはいったいどういう意味なのでしょうか?
よろしくおねがいします。
0602デフォルトの名無しさん
NGNG嘘つけ。第2章で出てくるだろ。<プログラミングWindows(上)
0603デフォルトの名無しさん
NGNGMac のアプリを Win に移植したいのですが
ChasingArrows (ぐるぐる回転する矢印)を描画するAPIはどれに相当するのでしょうか。
Macの場合はこれです。
Declare Function DrawThemeChasingArrows Lib "CarbonLib" (inBounds as Ptr, index as Integer, state as Integer, eUPP as Integer, userData as Integer) as Integer
0604デフォルトの名無しさん
NGNGその本に馬鹿丁寧に書いてあるから
絶対読み落とすはずがない。
0605デフォルトの名無しさん
NGNG立ち読みで一部だけ読んだとか?
律儀にTEXTマクロ使ってる本ってあんまり見ないな…ネットでも少ないけど
0606デフォルトの名無しさん
NGNG日本語の「たくわん」に相当する英語を教えてください
0607デフォルトの名無しさん
NGNGTransparent
0608デフォルトの名無しさん
NGNGPickled Japanese radishだそうです
0609デフォルトの名無しさん
NGNGこの辺でぐぐってみそ
WS_EX_TRANSPARENT
WS_EX_LAYERED
setLayeredWindowAttributes
0610デフォルトの名無しさん
NGNGShellAbout()のことか?
ただしMicrosoftの文字が必ず入る。
0611デフォルトの名無しさん
NGNGありがとうございます。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNGhttp://images.google.com/images?q=tbn:EruxJ3ZCH6cJ:developer.apple.com/documentation/Carbon/Conceptual/HandlingWindowsControls/art/chasingarrows.gif
このコントロールを任意の座標に描画するAPIを探しています。宜しくご教授お願いします。
0614デフォルトの名無しさん
NGNGWindowsのシステムカーソルにそんなものはない。
LoadCursorのドキュメントから用途にあったものを探せ。
OSが変わればカーソルも変わる。
0615デフォルトの名無しさん
NGNGWindowsアプリでそれ使ってるアプリあるか?
0616デフォルトの名無しさん
NGNGそれがどうした?
0617595
NGNG>>600
”伝える”の意味はそれで合っています
隠れるウィンドウは親子関係にないので、どうすればいいか分からなくなってしまいました
まずは隠れているウィンドウのハンドルを取得する方法を模索してみます
>>607, 609
レイヤードウィンドウについて調べてみましたが
完全に透明にしないとメッセージが裏のウィンドウに届いていませんでした
自分のウィンドウは見せる必要があるので、この方法では駄目でした
言葉が足りず、申し訳ありません
0618デフォルトの名無しさん
NGNG完全な透明にしなくても後ろのウィンドウにメッセージが行くのがTRANSPARENT
0619デフォルトの名無しさん
NGNG長い処理などをユーザーに待たせる時にマウスカーソルを砂時計に変えるかわりに、
回転する矢印のコントロールをウィンドウに配置して、処理中を知らせる物です。
0620デフォルトの名無しさん
NGNG無いっつってんだろ。
0621デフォルトの名無しさん
NGNGやる気があるならリソース埋め込んで自前で作れ。
0622595
NGNGTRANSPARENTをレイヤードウィンドウと勘違いしていました
ありがとうございました
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG勘違いしたのは >>609 のせいだな
0625デフォルトの名無しさん
NGNG別に素晴らしくもないと思う。むしろ回りくどくて書いた本人が満足してるだけっつーか。
0626デフォルトの名無しさん
NGNG>>606 == >>623 なんだからそれ以上かまうな
0627デフォルトの名無しさん
NGNG# そのままこれを使うといろんなアプリの出力が混じってしまうので
TCP、プロセス間通信あたりで実装しようかと思っていますが
もっとよい方法、定石、ライブラリみたいなものはあるんでしょうか?
0628デフォルトの名無しさん
NGNG=ではなく==を使う辺りがプログラム板って感じだ
0629デフォルトの名無しさん
NGNGファイル書き出しが定石じゃないか?
0631595
NGNG悪いのは自分で >>609 さんは的確な回答を示していました
622の書き方も変なので勘違いがないように訂正させてください
WS_EX_TRANSPARENTをWS_EX_LAYEREDを指定し
SetLayeredWindowAttributesを呼び出したウィンドウ=レイヤードウィンドウに付け加えることで、
自ウィンドウが存在しないかのようにメッセージがすり抜け、裏にいるウィンドウに送られるようになりました
何度も言葉足りずで混乱させて申し訳ありませんでした
0632デフォルトの名無しさん
NGNGそれだとODPと同じにはならないし
0633デフォルトの名無しさん
NGNGそういうのを syslog といいます
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG日本語で「たくわん」に相当する英語 = 存在しない
じゃないか?
0636デフォルトの名無しさん
NGNGおお、すまそ。
あくまで SetLayeredWindowAttributes と WS_EX_LAYERED が使われていないと、
WS_EX_TRANSPARENT が有効にならないんだということが分かった。
お詫びのしるし
http://www.sutosoft.com/room/archives/000050.html
http://www.microsoft.com/japan/msdn/windows/windows2000/layerwin.asp
0637お助けお願いm(_ _)m
NGNG返事ありがとうございます。
残念ながら、その方法ではアプリケーションを終了するタイミングは
取れますが、私の欲しいOSのシャットダウン中であるという情報は
取れませんね。
何はともあれ返事をいただいた事に対して深く感謝いたしますm(_ _)m
0638お助けお願いm(_ _)m
NGNG返信ありがとうございます。
まだ試しておりませんので、なんともわかりませんが
まったく手がかりがなかったので参考にさせていただきます。
誠にありがとうございました。m(_ _)m
0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNGこのAPIの終了はプロシージャが終了して、そのリターン値を受け取ってから終了する
ってことでいいんですか
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGてことはプロシージャは一つのWinMain()からは
1ループ(メッセージループ)毎に常に1回しか呼び出されないって理解してOKですか
0644デフォルトの名無しさん
NGNGすんませんコレ
スルーしといてください
0645デフォルトの名無しさん
NGNGそのままだと次の文字がアクセラレータキーになっちゃいます。
どしたらいいですか。
0646デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNGコンソールアプリケーションです
GetCurrentDirectoryを使ってパスを取得しています
アプリケーションをダブルクリックで実行させると正しいパスが帰ってくるんですが
他のファイルをドロップして実行させると「C:\Documents and Settings\hogehoge」というパスを取得してしまいます
もちろんアプリケーションはそれとは別のディレクトリですし、ドロップしたファイルも同様です
これはこういう仕様なのでしょうか?
0649デフォルトの名無しさん
NGNGそういう仕様です
0650デフォルトの名無しさん
NGNGシェル (Explorer) から exe ファイルをダブルクリックなりドラッグ・アンド・ドロップなりで起動した際の
カレントディレクトリはどこにも規定されていなかったと思います。
98系だと EXE のパスや開くべきファイルのパス、
NT系だとユーザのホームディレクトリになるんだったかな・・・
実行ファイルのパスを得るためには、GetModuleFileName という API が用意されています。
0651デフォルトの名無しさん
NGNGGetModuleFileNameで取得したパスを分解してディレクトリパスを取得して使ってみます
ありがとうございました
0652デフォルトの名無しさん
NGNGなんかM$のデフォ設定きらい
C:はブート用(入れなおせば済むファイル)
D:をミラーリング(消えたらガクブル系)
みたいな管理を徹底的に無視しやがる
0653デフォルトの名無しさん
NGNGargv[0]に入ってるみたいだけど
0654デフォルトの名無しさん
NGNGああぁっ!
コンソールアプリなのに忘れてましたw
0655デフォルトの名無しさん
NGNGVB6でピクチャボックスにGetPixelつかうと、ウィンドウと重なっている場合、
前のウィンドウのピクセルを拾ってしまうんですが、
どうすれば重なって隠れているウィンドウの
ピクセル色が拾えますか?
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGGetCommandLineで得られる文字列にも「実行ファイルのパス」が含まれてますが
これが確実にフルパスである、という保証はありますか?
GetCommandLineとGetCurrentDirectoryとGetModuleFileNameとを比較してみたら
引数の順序や戻り値の仕様がバラバラで精神衛生上アレだと思った
0659デフォルトの名無しさん
NGNG引数や戻り値はまぁあれだ、作ってるやつ(チーム)がそれぞれ違ったりするんで許してやれ。
0660デフォルトの名無しさん
NGNG俺が試してみたら、ファイル名だけだったよ
ファイル選択ダイアログとかはGetCurrentDirectoryで良いけど、
実行ファイルのパスが知りたいならGetModuleFileName使うが宜しい
コマンドライン引数を任意のタイミングで知りたいなら、GetCommandLineを使えばよい
0661デフォルトの名無しさん
NGNGWindows 側でイメージは保持してくれません。
重なって隠れているピクセルは拾えません。
別のウィンドウが上に重なったら、その下にあるウィンドウのイメージは壊れます。
別のウィンドウの下になっている部分が表示される時には WM_PAINT
が送られますので自分で書かなければいけません。
よって、画面上にあるピクセルを取得しても別のウィンドウが重なっている時は
重なっているウィンドウのピクセルが返ってきます。
これを回避するにはあらかじめ画面に表示するイメージを別に作っておくしかありません。
「オフスクリーンビットマップ」で調べてみてください。
VB には他に逃げ道があるのかもしれませんが。
0662デフォルトの名無しさん
NGNG__argc, __argvは、VC6.0以降は非サポートなの?
0663デフォルトの名無しさん
NGNGどんなスレッドが起こされているのか
リアルタイムで表示するような
アプリケーションてないですかね?
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGそのアイテム番号(リストの行)を拾いたいのですが、
なんかメッセージ飛んできますか?
0667デフォルトの名無しさん
NGNG親へ WM_NOTIFY で NM_CLICK
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/notifications/nm_click_listview.asp?frame=true
0668デフォルトの名無しさん
NGNGありがとん。
0669655
NGNGわかりました。
ありがとうございます。
0670デフォルトの名無しさん
NGNGSusieのプラグインで
HLOCAL *pHBm : ビットマップデータ本体のメモリハンドルが返される
とあるんですが、メモリの内容を見るにはどうすればいいですか?
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/developer/library/jpwinpf/_win32_locallock.htm
別にAPIスレはC/C++限定じゃないが。
0673デフォルトの名無しさん
NGNGサンプルプログラムを見るとTEXT("")という形で_が使われていなかったりして書いてあることと実際がぜんぜん違うじゃないかと困っています。
#include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, _TEXT ("Hello, Windows 98!"), _TEXT("HelloMsg"), 0) ;
return 0 ;
}
本に書いてあるとおりならこれで間違いないはずなのですがどうしてもコンパイルできないのはPCの問題でしょうか?
VC++6.0使用してます
0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG_T() や _TEXT() を使いたければ、tchar.h 等をインクルードしましょう。
0676デフォルトの名無しさん
NGNGHelloMsg.c -- Displays "Hello, Windows 98!" in a message box
(c) Charles Petzold, 1998
--------------------------------------------------------------*/
#include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0) ;
return 0 ;
}
0677デフォルトの名無しさん
NGNGわかりやすい回答ありがとうございます。
御礼をしておいてまた質問するもの失礼かと思いますが、#include <tchar.h> と_TEXTの組み合わせか、TEXT()を普通に使用するとではどちらが望ましいのでしょうか?
0678670
NGNGありがとうございます。
ロックを解除したいのではなく、中身を見たいんですが・・・
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNGAutoRedraw=Trueしれ
0681デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/developer/library/jpwinpf/_win32_locallock.htm
0682デフォルトの名無しさん
NGNG| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>678
/ ∩ノ ⊃ ヽ J
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0683670
NGNGつりじゃないんですけど・・・
0684デフォルトの名無しさん
NGNG他のヘッダやマクロを使う特別な理由がなければ、TEXT() でいいと思うよ。
0685デフォルトの名無しさん
NGNG戻り値がメモリへのポインタなんだから、それを取得して好きに読めばよい。
取得したポインタの中身を読む方法が分からないんだとしたら、スレ違い。
0686デフォルトの名無しさん
NGNGどうもですー。
0687デフォルトの名無しさん
NGNG知ってた?
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNGGetMenuString
ModifyMenu
0690デフォルトの名無しさん
NGNGstaticで定義されたフックプロシージャにthisポインタを渡す方法は
何かないでしょうか?
0691デフォルトの名無しさん
NGNGSetWindowLong/GetWindowLong
0692デフォルトの名無しさん
NGNG自前の永続変数にthisアドレスをコピー。
0693デフォルトの名無しさん
NGNG回答ありがとうございます。
あと質問の際の情報が不足していました申し訳ありませんでした。
お教えいただいた対策は、WH_CALLWNDPROC等のプロシージャ側にWindowHandleが送られて
くるタイプのプロシージャに対しては有効なのですが、今回メンバー関数に入れたい
フックプロシージャは、WH_KEYBOARD、WH_MOUSEなのでプロシージャにWindowHandleは
送られてきません(WH_MOUSEは送られてきたかも..)。
こういった場合の対策法は何かありませんでしょうか?
0695690
NGNG自己レスです。
よく考えたらHookだと目的のWindow以外のHandleも受け取るので無理ですね
やっぱり>>692の方法が現実的なんでしょうか?
とりあえず、>>692の方法で組んでみます。他にスマートな方法を知っている方が
居られましたらお教えください。
>>691,>>692
ありがとうございました。
0696デフォルトの名無しさん
NGNG>>690は見当違いな>>691の回答に丁重な謝辞を述べ、
まともな回答をした>>692を粗略に扱った、に10000ペソ。
0697デフォルトの名無しさん
NGNGと全く心のこもっていないダミーの質問をして、己の短慮を誤魔化そうとした、に10000ペソ。
0698デフォルトの名無しさん
NGNG感じで作ったらいいですか?
0699デフォルトの名無しさん
NGNG>ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
だそうだが、それは真っ当な用途のための質問かい?
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG実行ファイルのパス取得して、別プロセス起動後、自アプリを終了
ググれば、サンプルはいくらでもあるよ
NT系限定だけど、
MoveFileExでMOVEFILE_DELAY_UNTIL_REBOOTフラグを指定すれば、
再起動時に削除できる
0702デフォルトの名無しさん
NGNGアンインストーラ自身とかは自殺してくれないと困るだろ。
0703デフォルトの名無しさん
NGNG「アンインストーラを作りたいのですが・・・」
みたいに聞いてくれたら、
余計な突っ込みは入れないんだけどね
0704デフォルトの名無しさん
NGNGわざわざ自分でインストーラ作るのは車輪の再発明。
0705デフォルトの名無しさん
NGNGCreateFileでFILE_FLAG_DELETE_ON_CLOSEを指定する方法もある。
0706デフォルトの名無しさん
NGNGバッチファイルを作って、ループを回しそこで削除すればいい。
最後にバッチファイル自身を消す。
0707デフォルトの名無しさん
NGNG:start
del ほげほげ.exe
if exist ほげほげ.exe goto start:
del 自分自身.bat
0708デフォルトの名無しさん
NGNG1) rundll32で削除用DLLを起動
2) ヒープ上に3)、4)をやるコードをコピーしてジャンプ
3) 自分自身のロックをFreeLibraryで解放
4) 自分自身を削除
という方法を教わった。
で、XPSP2 on Athlon64にしたらヒープにジャンプしたところで
エラーが発生しましたとさ(チャンチャン
0709デフォルトの名無しさん
NGNGま、元々そうだったけど明確に弾かれるようになった。
SP2のデータ実行防止(DEP)機能なのか?
それとも多くのバイナリを/GSオプションでリコンパイルした結果?
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNGDirectXで描画している他人のウィンドウに落書きしたいのですが、
DirectXの描画速度が速いためにちかちかしてしまいます。
負けじとこちらもDirectXで描画してみたのですが、
やっぱりちかちかしてしまいました( つД;)
他人のDirectX描画をクリッピングとかできたりするんでしょうか?
テスト・開発環境はWinXP SP2+VC7+DirectX9cです
0712デフォルトの名無しさん
NGNG原因はDEPだった。VirtualAllocでPAGE_EXECUTE_READWRITEを
指定したメモリを確保するように変更して解決
0713デフォルトの名無しさん
NGNGどうすればいいですか?
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNGDirectXの描画速度は99%無関係だと思う
0718デフォルトの名無しさん
NGNGリージョン使って落書きの形のウィンドウを作って、
そのDirectXなウィンドウの上に置くとか。
0719711
NGNGウィンドウを重ねて(TOPMOST)で作成しても、
落書きしたい相手のウィンドウが上書きしてくるんです。
(言い忘れましたが、落書きしたい相手というのがゲームなので少し特殊なのかもしれません…)
DirectXでTOPMOSTよりも前面に上書きするオプションがあるかどうかなど当たってみます。
0720デフォルトの名無しさん
NGNGサーフェスぶんどってそこに描画ならできたはず。
詳しくは知らないのであとは調べてくれ。
0721デフォルトの名無しさん
NGNGフルスクリーンだと>>720しないときついけどウィンドウモードならリージョンでも
いけるはずなんだけどなぁ。nVidiaのカードだとドライバーのバージョンでいろいろ
挙動が変わったと思う。Layerd Windowも試してみるといいかも。
0722デフォルトの名無しさん
NGNGなんとかxmlとして表示させられないでしょうか?
0723デフォルトの名無しさん
NGNGできました。づもありがとうございます。
0724デフォルトの名無しさん
NGNG一方のスレッドが参照のみを行う(NULLでない間ループ等)場合でも
クリティカルセクションオブジェクトというのは作る必要があるんでしょうか?
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGNULL 5秒
NULL 5秒
!NULL 5秒
NULL 5秒
NULL 5秒
ポーリング感覚が10秒だったら検出出来ない罠
0727デフォルトの名無しさん
NGNGポインタがNULLかどうかなら大丈夫だけど
一般にCPUが一命令で処理できないようなデータの参照は駄目。
あと最適化でNULL突っ込むタイミングが変わらないとも限らないから
volatile指定しておくといいかも。
0728デフォルトの名無しさん
NGNG個々のプログラムが使用するメモリー容量を取得したいのですが・・・
(タスクマネージャのプロセスタブで表示できる仮想メモリサイズ)
APIはどれを使えばいいのか知りたいのですが解るかた教えてください。
0729デフォルトの名無しさん
NGNGある条件が真になるとserviceから現在logonしているuserのデスクトップ上で
applicationを起動したいのですが方法をご存知の方教えてください。
現在は、ターゲットapplication起動用のapplicationを
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
に登録する方法を取っているのですが、serviceから直接起動できるのなら
そのようにしたいと考えています。
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNGGDIにはないから、BITMAPFILEHEADER構造体→BITMAPINFOHEADER→色値の順にへこへこ書き出す
GDI+にはあるらしいが俺は試してないんで、すまんがコメントを控えさせていただく
0735デフォルトの名無しさん
NGNGIPicture::SaveAsFile()もあるでよ
0736デフォルトの名無しさん
NGNGどうしたらいいでしょうか?
単にデスクトップへの描画でなく
デスクトップよりも手前に表示されているウィンドウがあればそれも含めて
現在の画面に直接落書きするようなことをしたいのです
画面に落書きが表示された状態でも操作は普通にさせたいので
画面のハードコピーをとって表示させてその上に書くというのは無しで
0737デフォルトの名無しさん
NGNGガッ = GetDC(ぬるぽ);
0738デフォルトの名無しさん
NGNGなるほどぉ
ありがとうございます
0739デフォルトの名無しさん
NGNGだと言っている人がいましたが本当なのでしょうか?
できれば、Cから一気にVC++に飛びたいのですが……
0740デフォルトの名無しさん
NGNG言ってる意味ぜんぜん分からないから。
VC++はCやC++の延長上にあるものじゃないから。
雪と雪見大福くらい違うから。
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGVC++はCやC++の開発環境なんですけど・・・
0743デフォルトの名無しさん
NGNGVC++覚えるのにCの知識もC++の知識も要らないでしょ。
VC++でCやC++の開発したければそれぞれの言語の知識が必要だけど。
0744デフォルトの名無しさん
NGNG突っ込みどころ満載で・・・
0745デフォルトの名無しさん
NGNG>>739
Windows のアプリが作りたいのに C++ をわざわざ他のプラットフォーム
で勉強してもしょうがないよ。
まあ、C の知識のみ API の知識なしで、 MFC 使って C++ のプログラム
を覚えるのはちと荷が重いけどね。
VC++ でアプリ開発するには
C言語 + API
C++言語 + MFC (+ API)
C++言語 + ATL+ API
等、選択肢はいくつもある。
段階的に覚えていけばよいよ。
0746デフォルトの名無しさん
NGNG君のいう「VC++を覚える」とは、エディタの使い方かよ。 (プ
0747デフォルトの名無しさん
NGNGあとは、プロジェクトの設定とかだな
0748デフォルトの名無しさん
NGNGServiceから現在ログインしているユーザでExeを起動すると
パスワード有りの場合は何も問題なく実行出来るのですが、
パスワード無しの場合LogonUser関数で失敗(ErrCode:1327)します。
原因を追いかけていくと
ローカルセキュリティの設定 → セキュリティオプション内の
『アカウント:ローカルアカウントの空パスワードの使用を制限する』
の設定で挙動が変化すると判ったので
Exeを起動している間だけここの設定を『有効→無効』にしたいと思っています。
ここの設定を変更する方法(APIとか)を教えてください。
0749デフォルトの名無しさん
NGNGMFCの意味で使ってるっぽい
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG確かにね。仕事で引き合い貰って客先の案件要求見ると、言語の欄に.NET、VB、VC、C/C++、JAVAなんて書いてあったりするからね。
#VBって書いてあってExcelVBAだったりJAVAって書いてあってDeveloper2000なんか出てきた日にゃぁ…
0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNGCだってライブラリも言語のうちだし、
C++のクラス、テンプレートも言語のうちだろ
あとVisualStudioの開発ツール使わないでコーディングする場合もあるから
開発環境とは直接関係ないし
0754デフォルトの名無しさん
NGNG現在ログオンしているユーザーと違うアカウントで
起動したいのでなければ>>731-732
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG仕事や人事にでてくるそーゆー用語は
言語かどうかでは選んでないだろ
0757デフォルトの名無しさん
NGNGPlatform SDKとNET Framework SDKをインストールして
#include<windows.h>が使えるようになるんでしょうか??
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGVC++互換の言語拡張されてるやつ。
0760デフォルトの名無しさん
NGNGたしか、>>757にvc.exeが入ってたよね。
ヘッダは無かった気がするけど。
0761デフォルトの名無しさん
NGNG「言語」って書いてあるから>751のように書いたんだが。
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG>>759
レス、�dクスです。
コンパイラはbccの無料のやつを使ってるんですが。互換言語のところに、VC++と確か書いてありました。
今ボーランドのファイルを調べてみたら<windows.h>、ありやしたYO-!
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG_UNICODE を設定したとき,
Unicode にもいろいろありますが,
どのコードが使われるのでしょうか?
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGデータ型が違うわけじゃないから(全部WCHAR)
0770デフォルトの名無しさん
NGNG正確にはUTF-16からサロゲートペアを取り除いた物、だったはず。
0771デフォルトの名無しさん
NGNGWin2k以降ならサロゲートにも対応してるしWin9xでも>>769
0772デフォルトの名無しさん
NGNGどうあがいてもサロゲート文字が出せなかった
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNGWS_EX_TOOLWINDOWを使って作ったウィンドウを
子ウィンドウとして、出しているのですが、
Xボタンを押すとウィンドウを隠すのではなくて
完全に消去されてしまっていてShowWindow(hwnd,SW_SHOW)で
また表示することができません。
Xボタンの処理内容を変更するにはどうしたらよいでしょうか?
0775デフォルトの名無しさん
NGNGWM_CLOSE
で ShowWindow(hwnd, SW_HIDE) でウィンドウ消して
DefWindowProc を呼び出さない。
0776デフォルトの名無しさん
NGNGそーやってんだけどなぁ・・・ああ?ん?へ?
って、ソースが汚すぎてインデントが腐ってて
よくみるとbreakで抜けていましたw
ごめいわくおかけしました。逝ってきまつ。
レスありがとうございました。おかげで解決しました。
0777デフォルトの名無しさん
NGNGツールバーを使う方法がありましたら教えてください。
ボタンやメニューなどは分かったのですが、ツールバーは見つかりませんでした。
0778デフォルトの名無しさん
NGNGスリーセブンおめ!
いや、普通にCreateWindowExで作れるんじゃねぇ?
ぐぐっといたぞ。
猫さんが一番上にきてるね。
http://www.google.co.jp/search?hl=ja&q=%E3%83%84%E3%83%BC%E3%83%AB%E3%83%90%E3%83%BC+CreateWindowEx&lr=
0779デフォルトの名無しさん
NGNG質問がそもそも曖昧だし
UCS-2は転送形式をも含んだ意味で使われる場合もあるし
0780777
NGNGありがとうございます。
確かに乗っていますが、リソーススクリプトを使っています。
ボタンの章では使わずに作られているのですが。
http://www.kumei.ne.jp/c_lang/sdk/sdk_28.htm
0781デフォルトの名無しさん
NGNG自作ライブラリから適当に抜き出した
構造体名とかから、ググれば解説ページも出ると思う
TBBUTTON *tbButton
TBADDBITMAP tb;
hWnd=GetParent(hwToolbar);
tb.hInst=(HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE);
tb.nID=IDD_BMP_BBOARD;
iIndex=SendMessage(hwToolbar,TB_ADDBITMAP,1,(LPARAM)&tb);
tbButton[1].iBitmap=iIndex;
SendMessage(hwToolbar,TB_ADDBUTTONS,1,(LPARAM)&tbButton[1]);
0783デフォルトの名無しさん
NGNG処理が軽い時は一定のタイミングでコールバックが来るので良いのですが、
重くなった時は呼び出し回数が減り、その後に大量にコールバック関数が呼ばれます
重くなった時は回数が減っても良いのですが、軽くなった時に元通りのタイミングに戻って欲しい場合はどうすれば良いですか?
timeGetTime辺りで呼び出し間隔を記録して、
・前回からの呼び出し間隔が設定値よりかなり短い時は、丁度良い感覚のもの以外はすぐにreturnする
というだけの処理で良いのでしょうか?
重い状態が長続きした場合に、バッファがたまってオーバーフローを起こしたりしないのでしょうか?
0784デフォルトの名無しさん
NGNGえ?
猫さんの63章は使って無いんじゃない?
リソーススクリプトはビットマップを読んでるだけでしょ。
0785デフォルトの名無しさん
NGNGそれって単純にやっちゃ駄目なんじゃない?
つまり、重くなったときは処理が間に合わなくてメッセージだけ
蓄積されてて軽くなったら一気に処理しちゃってるってことでしょ?
こういうの解決するのってメッセージの送信側と受信側で
メッセージの蓄積状態を管理しなきゃ駄目なんじゃない?
よう知らんけどw
0786デフォルトの名無しさん
NGNGマルチメディアタイマーはWindowsが管理してるんで、送信側の管理が良く分からんのですよ
今実験してたら、しばらく負荷かけてたら、プログラムが落ちた…そのままでは問題みたいです
マルチメディアタイマーでは無理な場合は、自作タイマーで行くしか無いかな…
0789デフォルトの名無しさん
NGNG今Windows内で開いてあるウィンドウのハンドルを全て得たいのですが、
どのAPIを使えばいいのでしょうか?
教えていただけると助かります。
0790デフォルトの名無しさん
NGNGEnumWindows
0791733
NGNGありがとうございます。
色の値をへこへこ書く方法に挑戦しているのですが、
COLORREF rgb;に色の値が入っていて、
LPBYTE lpPixel;がピクセルビットの先頭を指しているという場合、
ここからどうすればいいのでしょうか。カラービットは24です。
0792789
NGNGご返答ありがとうございました。
あと、一点ほど質問があるのですが、
人様のウィンドウハンドルを取得したとします。
そのウィンドウ(ハンドル)にイベントを送信できるのでしょうか?
たとえば、メモ帳が開いてあるとして、
そのメモ帳に自分が作ったアプリケーションからイベント(文字入力や改行など)を送ることができるのでしょうか?
もしできるとするなら、どのAPIを使えばいいのでしょうか?
再度の質問になりますが、ご返答いただけたらとても助かります。
申し訳ございませんが、よろしくお願いいたします。
0793デフォルトの名無しさん
NGNGできる。
イベントを送るにはPost/SendMessageを使う。
戻り値を知る必要のあるときと引数にポインタを渡すときにはSendMessage()。
どちらにも当てはまらないときにはPostMessage()。迷ったらSendMessage()。
ちなみにメモ帳はメモ帳自身のウィンドウにエディトボックスが子ウィンドウとして張り付いていることに注意。
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNGMessageBox()のオーナーウィンドウのハンドルをNULLにした場合で
プロシージャからMessageBox()を呼び出し、無視してオーナーウィンドウを操作して終了させた場合
MessageBox()を呼び出しているプロシージャが終了しないまま
実行ファイルが終了することになると思うんですが
プロシージャが終了していない=WinMain()のメッセージループに制御が戻っていない にもかかわらず
どうやってプロシージャが終了のメッセージを受け取り、実行ファイルが終了しているんでしょうか
0796デフォルトの名無しさん
NGNG便利なAPIがあるぞ。
GetWindowThreadProcessId
GetGUIThreadInfo
これで得たフォーカスを持ったウィンドウに
SendMessageを送る。
0797デフォルトの名無しさん
NGNGMessageBoxの中でメッセージループが回ってるから
そいつが終了イベントを拾ってウィンドウプロシージャが呼ばれる。
0798デフォルトの名無しさん
NGNG処理を終了するけど、もう一度アプリに WM_QUIT を送りなおしてたか
キューから取り除かなかったかしてたと思う。
その挙動を利用して MessageBox を自動的に閉じるテクニックがあったような。
で、MessageBox 関数から戻ってきた時にプログラムがどこまで解体されているかが
問題だね。WM_QUIT まで処理は進んでるんで、MessageBox 関数後の
処理でクラッシュするかもしれない。運良く本来のメッセージループまで
もどれたら、アプリは正常終了できるんじゃないかな。
0799733
NGNG0800デフォルトの名無しさん
NGNG>>798
THX
結局MessageBoxってWinMainのような
ウィンドウを生成してメッセージボックスをもつ仕様なんですね
0801デフォルトの名無しさん
NGNGタスクバーに無い(見えない)ウィンドウらしきものも取得されるみたいですね。
デスクトップには実際に3つしかウィンドウを開いていないのですが、
100個ちかくのウィンドウが取得されます。
タスクバーにあるウィンドウ(アプリケーション含め)だけを取得したい場合はどうすればいいのでしょうか?
0802デフォルトの名無しさん
NGNG//ふるいにかける必要がある
if( ( IsWindowVisible( hWnd ) ) && // 可視状態か
( GetWindow( hWnd, GW_OWNER ) == NULL ) && // トップレベルウィンドウか
( lstrlen( szWindowName ) > 0 ) && // キャプションを持っているか
( lstrcmp( szClassName, "Progman" ) != 0 )) // シェルでないか
{
0803デフォルトの名無しさん
NGNGお前・・・それ試したか?
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNGつまりお前の思い込みで書いたってことね。
納得。
0807デフォルトの名無しさん
NGNGITaskBar とかっていうインターフェイスなかったっけ?
0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNGURLOpenBlockingStream / URLDownloadToFile / ATL::CBindStatusCallback::Download
など、データを取得する関数がことごとく失敗します。
(URLDownloadToFile にいたっては失敗したくせに成功コードを返してきます)
それぞれ 結果の Stream が NULL / ファイルが作成されない / OnDataAvailable が呼ばれない
という症状が出ています。
IEコンポーネントでは表示できるし、
実際にプロトコルハンドラの方にリクエストが来ていることは確認しました。
http などの定義済みプロトコルではこれらの取得関数は成功します。
どなたか成功したことのある方がいらっしゃったらお知恵をお貸しください。
0811デフォルトの名無しさん
NGNGSendMessegeの引数をどうすればいいのでしょうか?
ウィンドウハンドルは、hWnd
送信したい文字は「a」とするならば、どうなるでしょう?
教えていただきたいのですが、ご存知の方はいますか?
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG質問はそういう意味だったのか。よく分かるな。
0814デフォルトの名無しさん
NGNG普通は SendMessage(hWnd, WM_HOGE, TEXT('a'), 0); って思うのが関の山
0815デフォルトの名無しさん
NGNGSetWindowText
0816デフォルトの名無しさん
NGNGVisualBasic6.0でAPI呼び出す方法を勉強したいのですが
解説されているサイトでお勧めなのを教えてください。
0817デフォルトの名無しさん
NGNG0818816
NGNGでもgoogleは文章で検索するのは精度落ちるのであまりいい方法ではないですよ。
詳しくはこちらで
http://kagakuteki.poke1.jp/jokyu/google-shikumi.html
引き続きお勧めサイトの情報お待ちしております。
0819デフォルトの名無しさん
NGNGうーん、お前は死んだ方がいいぞ。
自分の書き込みをよく見直してから投稿しろ。
0820デフォルトの名無しさん
NGNGこのキーワードならどう?
http://www.google.co.jp/search?as_q=&num=100&hl=ja&c2coff=1&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=Win32API&as_oq=VB+VisualBasic&as_eq=&lr=lang_ja&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
0821デフォルトの名無しさん
NGNGモニタの色の設定が 256 とか 24 bit color とか調べる API はなんですか。
0822デフォルトの名無しさん
NGNGあんま自信ねーんだけど
GetPixelFormat と DescribePixelFormat でどうよ。
0823デフォルトの名無しさん
NGNG忘れてしまいました。
教えてください。すいません。
0824デフォルトの名無しさん
NGNGGetDeviceCapsかな?
0825デフォルトの名無しさん
NGNGttp://www.geocities.jp/winapi_database/Message/WM/index.html
0826デフォルトの名無しさん
NGNGこのスレにはVBプログラマあんまりいないんじゃねえの…?
基本がわかってるなら「ダニエル・アップルマンのWin32 APIパズルブック」という本が面白かった。本だけど。
http://www.amazon.co.jp/exec/obidos/ASIN/4881357905/
>>821
GetDeviceCapsでどう?
>>823
SPYで調べろよ。WM_ACTIVATE
0828デフォルトの名無しさん
NGNG0829821
NGNGMSCN のサンプルに 1<<GetDeviceCaps(hDC, BITSPIXEL) で色数を求めている例が
ありました。24 bit 前提でソフト組んでて違うモニタで一瞬びっくりでした。
>>822
どうもありがとうございました。取り合えず多数意見に従いました。
ご指摘の API も知りませんので、後で、勉強させてもらいます。
0830デフォルトの名無しさん
NGNGカスタムドローで変えるにはどうすれば良いのでしょうか?
CDDS_ITEMPREPAINTで(何故かuItemStateが全てCDIS_CHECKED | CDIS_SELECTED)
選択アイテムとそれ以外を区別する所までは上手くいっているのですが
選択アイテムの時に新しいカラーを指定しても反映されず、元の反転色のままで困っています。
0831デフォルトの名無しさん
NGNG819では無いが、Googleを使いこなす努力は必要だろ
適切なキーワードを入れれば、精度は上がるし、その努力が足りない事をGoogleの性にするのはどうかと思うぞ
0832デフォルトの名無しさん
NGNG>>820の最初のリンク先で十分じゃん。
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG忘れたんじゃなくて元々知らないんでしょ。
見栄張らなくていいよ。ま、見栄にもなってないけど。
0835デフォルトの名無しさん
NGNG質問しに来て逆切れするのはそれ以前の問題だろ
0836デフォルトの名無しさん
NGNGよく分からん。誰に言ってるんだ?
0837デフォルトの名無しさん
NGNGごく平静に礼儀をもって話しているつもりがあのとおり
要するに人格障害だ
一番苦しいのは本人てとこで許してやろうぜ(・∀・)ニヤニヤと
0838デフォルトの名無しさん
NGNG>>816→>>817→>>818→>>819→>>827
質問→ググれ→Googleは精度悪い、ちゃんとサイト出せ→煽り→煽り
って流れ。
>>818でGoogleがダメだから見つからないって言い訳してるが、
>>820のようにキーワードを工夫する事無く、サイトが見つからないのをGoogleの性にするのは問題ありって話
本質的には、>>835の言うように問題外だけど
0839デフォルトの名無しさん
NGNGこういう偽物(?)をひっくるめたメニュー由来のメッセージを扱う方法はないものでしょうか?
メニューも子ウィンドウの一種らしいんで、ウィンドウのハンドルからそれがメニューっぽいかどうか判別できれば良いんじゃないかと思うんですが…
0840デフォルトの名無しさん
NGNG今エディットテキスト内にあるテキストの指定した部分に文字列を挿入したい場合は、どのAPIをつかえばいいのでしょうか。
申し訳ございませんが教えていただきたいです。
0841デフォルトの名無しさん
NGNGGETしてSET
0842デフォルトの名無しさん
NGNGEM_REPLACESEL
0843デフォルトの名無しさん
NGNGハッととしてグー
0844デフォルトの名無しさん
NGNGそろそろ、誰か答えてもらえないかのぉ
0845デフォルトの名無しさん
NGNGまだ誰も答えてなかったんだ。
GetPageMemSize
でしょ。
0847モウモウ
NGNGこちらは 9x系でも使える。
0848816
NGNG本購入しました。少し難しいですけど頑張って勉強することにします。
どうもありがとうございました。
>>838
少々誤解されているので一応補足します。
>Googleは精度悪い、ちゃんとサイト出せ
これは全く的外れです。
Googleは精度悪いなど言ってません。
>>818で述べたように「文章で検索するのは精度落ちるから
「キーワードで検索するほうがよい」といった意味で教示したまです。
リンク先を読めば理解できると思うのですが。
私が希望したサイトの情報の回答がこの時点で得られてないので引き続き回答を
受け付けていると言ったまでです。
本当に意図が理解できなかったのか、それとも揚げ足を取りたかったのかどちらでしょう?
いずれにしても非常識極まりないですし、こちらとしても不愉快です。
長い間このスレにいますが、少々良識ない人間が最近入り込んでいて残念に思います。
0849816
NGNG「文章で検索するのは精度落ちる」というのは
>>817に対するレスです。
「VisualBasic6.0でAPI呼び出す」という文章で検索してるので
キーワード絞って検索したほうがいいといった意味で
参考までに>>818のリンクを貼りました。
>>817が少しでも正しくgoogleを使えるようになるといいと思います。
0850デフォルトの名無しさん
NGNGやっぱ死んだ方がいいよ、君は。
同じ失敗をまた犯している。もう救いようがないな。
0851デフォルトの名無しさん
NGNG死ななくて良いけど、ネットはしない方が良いな
人付き合いも問題がありそうだから、プログラミングよりそっちの勉強をした方が良い
最近は職業訓練所とか行けばやってくれるのか?
0852デフォルトの名無しさん
NGNG「またカキコしてるようぜぇな」とレスを読んでません
0853デフォルトの名無しさん
NGNG大変ですな。
0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNGつか、相手にするな。
0860デフォルトの名無しさん
NGNGさんくすこ
0861デフォルトの名無しさん
NGNG文中に特定のワードが現れたときに、その部分だけ色を変えたいのですが、うまくいきません。
普通に入力していき、特定ワードが完成した瞬間にその部分の色が変わり、
逆に一文字削除したらその瞬間に元の色に戻るようにしたいのです。
特定ワードをハイライトする部分は完成したので、
「テキストファイルを読み込んだ直後、一度だけ色付けする」
というようなことなら出来ていますが、リアルタイムに変更させることができません。
具体的には、
1)メインウィンドウの中にリッチエディットコントロールを貼り付ける
2)ウィンドウメッセージを監視して、WM_KEYDOWNの瞬間にリハイライトルーチンを呼ぶ
ということを行っていますが、
リッチエディットウィンドウ内で一度マウスをクリックして、カーソルが「I」の形に変化した状態になると、
いくら文字を入力してもWM_KEYDOWNを検知することができません。
C/C++は15年くらい経験があるのですが、Windowsプログラミングは全くの初心者なので、
根本的に違っていたらご指摘ください。
0862デフォルトの名無しさん
NGNGリッチエディトコントロールの中で起こる事はリッチエディトコントロールのウィンドウプロシージャが処理するから、
親ウィンドウではいくら待ってもWM_KEYDOWNは来ない。
代わりにWM_COMMANDでEN_CHANGE通知メッセージが来るのをを待てば良いんじゃないかな。
そしてEN_CHANGEが来るようにするにはリッチエディトコントロールへEM_SETEVENTMASKメッセージを送る必要がある。
0863デフォルトの名無しさん
NGNGありがとうございます。
0865デフォルトの名無しさん
NGNG#define _UNICODE
ではなにが違うのでしょうか?
0866デフォルトの名無しさん
NGNG#ifdef _UNICODE
#ifndef UNICODE
#define UNICODE // UNICODE is used by Windows headers
#endif
#endif
#ifdef UNICODE
#ifndef _UNICODE
#define _UNICODE // _UNICODE is used by C-runtime/MFC headers
#endif
#endif
0867デフォルトの名無しさん
NGNGUNICODEはWindows.h以下でAPIやTEXT/__TEXTマクロ、TCHARなどの切替。
_UNICODEはTChar.hでCライブラリ関数や_tmain/_tWinMain、_TEXT/_Tマクロ、_TCHARなどの切替。
0868デフォルトの名無しさん
NGNGレスありがとうございます。
CライブラリやMFCを使っている場合は_UNICODEもしろって感じですかね(自信なしです
0869デフォルトの名無しさん
NGNG>>866読め。どっちかが定義してあればもう片方も定義されるようになっている。
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG全部聞くなよ。最近この手の新人多いんだよなー
全ての判断を人に委ねる奴。
ひどい評価付けてやってるけどね。
0872865
NGNG_UNICODEでコンパイルしてみたら「wsprintf・lstrlen・DrawText」が通らなかったので調べてました
とりあえず私は両方使います orz
0873デフォルトの名無しさん
NGNG単に渡してる文字列がcharになってるだけだな。
間違いない。
0874デフォルトの名無しさん
NGNGうーん、それはありうりますなぁ
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNGアホ
0877デフォルトの名無しさん
NGNGs/う/お/
古典スレ池
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGくだらん
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGアホじゃないけど存在不要
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGアホ
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNGそうだな。どうせろくな回答もないし。
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGそもそもまともな質問がないからな。
0888デフォルトの名無しさん
NGNGいいとも
>887
ごもっとも
0889デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1057225723/
0890デフォルトの名無しさん
NGNGswitch(msg)
case WM_COMMAND:
//処理(ボタンとかメニューとかを処理)
return 0;
case WM_NOTIFY:
//処理(リストビューとかの処理)
return 0;
}
ってやってたんですけど。
これってやっぱりreturnしちゃまずいですかね?
HIWORD(wp)とかLOWORD(wp)とかある場合だと自分が処理する以外の
他のメッセージとかDefWindowProcにいかないので処理されないですかね?
0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGそれ、動かしてみたか?
まともに動くわけ無いだろ。
0893デフォルトの名無しさん
NGNGこの手の質問する奴ってまともに動いてるかどうかの
判断もできてないから問題ないんじゃない?
0894デフォルトの名無しさん
NGNG場合による
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG実際はDefWindowProcが一番下にあって
switch文のWM_COMMANDの中身は
switch(HIWORD(wp)とか判断してBN_CLICKとか
switch(LOWORD(wp)とかIDC_XXXとかあるわけですよ。
んで、実際に動いてます。
いまのところなんの支障もありません。
また、return 0で返してしまおうが、breakでぬけて
DefWindowProcに渡そうが動作はまったく変わりません。
0898デフォルトの名無しさん
NGNGreturn で帰ろうと、DefWindowProc に渡しても違いは無いよ。
0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG同じメッセージでもSDIかMDIかによって変わる
ヘルプ読む
0901デフォルトの名無しさん
NGNGそうなんですか。
いまのところSDIのアプリしか作ったことがないので
その辺気にしたことがありませんでした。
ありがとうございます。
0902デフォルトの名無しさん
NGNGそれとも Windows のシステム DLL を逆アセして、
C 言語で書き直しているんでしょうか?
0903デフォルトの名無しさん
NGNGアホ
0904デフォルトの名無しさん
NGNGWinsockでヤフーのサーバwww.yahoo.co.jpへGET送信したんですけど、
返答してきたデータが文字化けをしてるんですね。
これってなぜこうなるのかご存知でしょうか?
HTTP/1.1 200 OK
Date: Tue, 23 Nov 2004 11:29:45 GMT
Cache-Control: private
(一部省略)
Content-Type: text/html;charset=euc-jp
Content-Encoding: gzip
domain=.yahoo.co.jp
25aa
・ミソノ・1」Xル^+<-箕tウ葎クmxョ・rヲ・�ロ厩ロ]鑒/lレ哩・@ュrq
&Y1i
ー諢ュ3ャヘT=JS^��x07ヘU
・4#2d!フh暮ォR)9「。リリ&ォ帥Rエャ 1ocW^?e+{・ィ3H験4y・ハラェTa・8蘇3・dA慢埒8&イ_・A ・リ
v咽「ェjゥ0オ<�フク=E{BC}Gナヲゥ-マHュ・K)9)%g・゚ヤエョコタE「
゚Fタt・S・・エサΜ怯設オ(t綉・
=g��V」ソbレXPGqヒ!イ啓~カ・qW'Nコ+ケ~%p&恩・・
0905デフォルトの名無しさん
NGNG> Content-Encoding: gzip
これ見た?
0906デフォルトの名無しさん
NGNGすげーな。わかんないところは適当に読み飛ばしか。
0907デフォルトの名無しさん
NGNGContent-Type: text/html;charset=Shift_JIS
をつけてGETすれば、おk
0908デフォルトの名無しさん
NGNGなんか勘違いしてないか?
0909デフォルトの名無しさん
NGNGGET送信する際、恐らくAccept-Encoding: gzipと入れてるのでしょうか?
Accept-Encodingは圧縮されて受信しますので、そのような文字化けされた形になります。
Accept-Encodingを削除してGET送信してみてください。
プレーンのテキストで受信されますよ。
0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNGたぶん(最悪でも建前上は)前者じゃないと駄目だろ。
0912デフォルトの名無しさん
NGNGでも、相互運用のための逆アセは合法だって聞いたよ。
0913デフォルトの名無しさん
NGNG誰に?
0914デフォルトの名無しさん
NGNG実際にそれをやった企業があるらしいし、
裁判になって勝った例もあるらしいよ。
0915デフォルトの名無しさん
NGNGhttp://www.cric.or.jp/houkoku/h6_5/h6_5_main.html
0916デフォルトの名無しさん
NGNGサンクス
0917916
NGNG` 、_,{ `‐、_ ,* ,、' ~`y'
) r' ~`'rr-、、,,,_ ,ノ"§ _,、< ,;;ゝ
`~`i' ,'r´:::::::::`;丶、 ,_ _,,、-'´,ノ ,ノ ,、 ‐'"`, ';‐'"
,' ,','::::::::::::::,' ````` `"´ `"´~`''''''''''T´::::::::::::::',', |
i ,','::::::::::::::,' ( ) (ブリブリッ',::::::::::::::::::ii :!
,r'" ,','::::::::::::: ,' ).∧ ) ',::::::::::::::::::!! i、
r''"' ノノ:::::::::::: ,' (:::::::::) ',::::::::::::::::',', i!ヽ
{____,、-'/:::::::::::::;;' ポルポト (:::::::::::::::) ',:::::::::::::::::ヾ、__)
0918デフォルトの名無しさん
NGNGどうでしょうか?
ほかにもっといいリファレンスなどありますでしょうか?
(MSDNライブラリなどは入っていますが、持ち歩きたいので)
http://www.amazon.co.jp/exec/obidos/ASIN/4756137482/qid=1101220486/sr=1-1/ref=sr_1_10_1/249-3121052-5258703
0919デフォルトの名無しさん
NGNGMSDNライブラリを持ち歩け
0920デフォルトの名無しさん
NGNGhttp://www.vaio.sony.co.jp/Products/VGN-U50/
どぞ。
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNGそれ買ってみたけど損したよ
関数の解説だけで構造体の解説が載ってないのがリファレンスとして片手落ち。
構造体の解説を読むにはMSDNを開く必要がある… 結局MSDNしか使ってない罠。
0923デフォルトの名無しさん
NGNG何かメッセージを送って任意のアイテムを選択させるやり方を教えてください
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNGありがとうございました
0926デフォルトの名無しさん
NGNG経過した秒数がわかるようなAPIを教えてください
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNG>>928
レスありがとうございます
GetTickCountとSetTimer()の長所と短所を教えてください
どっちを使った方がいいのか迷ってしまいました
0930デフォルトの名無しさん
NGNG両方やってみろ
それで分からなかったら、頭悪すぎだからプログラムやめとけ
0931デフォルトの名無しさん
NGNGGetTickCount() 無限ループ
SetTimer() イヴェントドリヴン
0932デフォルトの名無しさん
NGNGそれは>929に対する回答にはなってないですね。
0933デフォルトの名無しさん
NGNG両者は、使用目的が違うので比較するようなものではないです。
ループで GetTickCount() の値の変化を待つのは
CPU時間の浪費につながるので、あまり望ましくないのです。
0934デフォルトの名無しさん
NGNGそれがどうかしましたか?
0935デフォルトの名無しさん
NGNGいいえ
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNGszBuffer,
wsprintf (szBuffer, TEXT ("%5d"),GetSystemMetrics (sysmetrics[i].iIndex)));
というコードがあったのですが%5dってどういう言う意味なんでしょうか。
%dとの違いがよくわからず困ってます。
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941939
NGNGAPIの説明の width のところを読んでください。
0942本物の939
NGNG訂正なんかしねえぞ
0943938
NGNG0944940
NGNG0945デフォルトの名無しさん
NGNG0946939
NGNG本当にすいません。病気なので許してください。
0947デフォルトの名無しさん
NGNGとりあえず、これからも頑張ってくれ
0948デフォルトの名無しさん
NGNG開発環境はC言語、ボーランドです。
0949デフォルトの名無しさん
NGNGSHBrowseForFolder でググってください。
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNGそれそれ
0952デフォルトの名無しさん
NGNGVisualC++逆引き大全500の極意
って本がかなりいいよ。
MSDNの100倍役に立つ。
これからは「MSDNの100倍役に立つVisual(以下略
って出してもいいくらい。
最近MSに下記原文まんま(ハゲ抜かしてw)で送ってみた。
おい!MS!てめぇんところにもう何年投資してやってるとオモテンだ!ハゲ!
いつになったらWin32APIが日本語訳されんだよ!ハゲ!
全然進歩してねぇよ。ハゲ!
最近じゃ英語ヘルプも含めて、日に日にWin32APIにヒットしなくなってるのは
どういうことだよ。ハゲ!
日本語訳そっちのけで、新機能なんか追加してんじゃねぇよ!ハゲ!
フィルタの種類ももニーズにあってないんだよ!ハゲ!
センスの悪さがMSDNからにじみ出てんだよ!ハゲ!
まだ、レスが返ってこないよw
0953デフォルトの名無しさん
NGNGゲイツ「これだから英語も出来ない極東の小国の民は困る」
0954デフォルトの名無しさん
NGNGVisualC++逆引き大全500の極意
買ったけど損した。
使えるサンプルコードが少なすぎ。
たとえばSHBrowseForFolder の所なんかサンプルコードないだろ
0955デフォルトの名無しさん
NGNGでも、ここまで詳しく書いてあれば十分だよ。
俺はその存在をしっただけでもよかった。
0956デフォルトの名無しさん
NGNG誤植も多いけど、結構役に立ったよ。初心者にはいいと思う。
0957デフォルトの名無しさん
NGNGWebBrowserを使用してフォーム上に表示してますが、
WebBrowserは透過が出来ないため、WebBrowserの背景が
長方形型にくっきりと残ってしまいます。
どうしても、枠を消してフォームの背景上にWebBrowserの
ルビ付き文字だけを表示させたいのです。
VBでWebBrowserを透過表示させる方法を教えてくらはい
0958デフォルトの名無しさん
NGNGとくにShell/OLE/COM周りは。
0959デフォルトの名無しさん
NGNG特に簡単な手はないです。get_Documentでドキュメントを手に入れて、
body の style を操作して背景イメージを適切に設定するのが良いと思います。
0960デフォルトの名無しさん
NGNGVC++によるWin32プログラミングTips
http://www.expertmg.co.jp/html/cti/vctips/
フォルダ選択ダイアログの実装もちゃんとコードつきで説明がある。
0961デフォルトの名無しさん
NGNGディレクトリリストボックスってなかったっけ?
なんか古いタイプのファイルオープンダイアログにはついてんだけどなw
単体では無いんだなw
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNGおお!それそれ!
なるほどリストボックスだったんか・・・
SHBrowseForFolderとどっちがいいかな?
0964デフォルトの名無しさん
NGNGワラタ
0965デフォルトの名無しさん
NGNGHTMLのOPTGROUPの様なものはありますか?
0966デフォルトの名無しさん
NGNGGetCommandLine() の返り値を全部解析するしかないですか?
またコンソールプログラムの場合はmain() の argc, argv でいいんですか?
0967デフォルトの名無しさん
NGNGNetUserGetLocalGroupsを使ってUserの所属するグループを取得しようとしているのですが、
同じUser名でドメインの違うユーザーの区別はどうすれば良いのでしょうか?
NetUserEnumでUser名を列挙すると、"UserName"、"VUSR_USERNAME"と区別されているよう
なので、返された名前をNetUserGetLocalGroupsに渡してみたのですが"VUSR_USERNAME"の
方で関数が失敗してしまいました。
0968デフォルトの名無しさん
NGNG<DomainName>\<UserName>
て書いてるけど
0969デフォルトの名無しさん
NGNGNT系ならCommandLineToArgvWがつかえる。
0970デフォルトの名無しさん
NGNGああ、本当だ。吊ってくる..(´・ω・`)ショボーン
グループは取得できました。ありがとうございました。
それと、USR_USRERNAMEは何の関係も無かったです。
0971デフォルトの名無しさん
NGNG元々書いてあった文字列より短いものを上書きすると、
前の内容が残っているようです。
↓こんな感じになります。
ファイルの文字列「あいうえお」
上書きする文字列「OK」
更新後のファイル文字列「OKうえお」
解決法を賜りたいです。
0972デフォルトの名無しさん
NGNGSetEndOfFile
0974デフォルトの名無しさん
NGNGCreateProcess()で起動可能か検証したことのある方。
できましたでしょうか?
0975デフォルトの名無しさん
NGNGありがとうございます。
0976デフォルトの名無しさん
NGNGエディットボックスのハンドルを得ようとしますよ。
その際、僕はVC++のSpyとか言うのを使って、子ウィンドウとなっているそれが
上から何番目になってるか調べてChildWindow(?)とかいう関数を使ってGW_NEXT
で順々にハンドルをとる、面倒で馬鹿な事やってるんですが、
これ以外にいい方法はありませんか?
なんかわかりにくいですが、要は一発で
検索のような入り組んだアプリケーションの、エディットボックスのハンドルを得たいんです。
無理でしょうか?
0977デフォルトの名無しさん
NGNGウィンドウクラスで検索して、GetDlgCtrlIDでコントロールIDを取得して
目的のものかどうか判断するってのはどうでしょう?
0978デフォルトの名無しさん
NGNGデスクトップでアプリを実行させようと思ったんですが、ログオンユーザーのプロセスハンドルの取得
方法が分かりません。どうやってアカウント名からプロセスハンドルを引っ張ってこればよいですか?
0979デフォルトの名無しさん
NGNGコレは・・・高さが文字の高さの整数倍にしかならないみたいなんですけど、
ウィンドウの幅にぴったり合わせるにはどうしたらいいでしょうか?
今はMoveWindowでウィンドウに合わせようとしています。
0980デフォルトの名無しさん
NGNGLogonUser( "UserName", NULL, "Password", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
& hToken );
でトークン作ったほうが簡単。
0981デフォルトの名無しさん
NGNGその方法だとパスワード引っ張って来るのに、gina.dllに細工するとかちょっと仕掛が必要ですよね?
ちょっち、難易度が高い気がするです。
各アカウントのパスワードをユーザーに開示してもらうっていうのも現実的ではないですし…困り
ました。
0982デフォルトの名無しさん
NGNG適当な実行権があればCreateProcessAsUserはwinsta0\Default上に起動しますが。
(つかSIDからトークンにするやり方わからん)
0983デフォルトの名無しさん
NGNGこのスレだけで三度目だぞその質問
0984デフォルトの名無しさん
NGNG現在ログオンしてるユーザーでいいんだろ?
だったら現在走行中のプロセス列挙してどれでもOpenProcessすればいい
どのプロセスもwinlogonが作成したトークンを引き継いでるはずだから
(Terminal Serviceや「ユーザーの切り替え」や「別のユーザーとして実行」は
考慮してないが)
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101393155/
0990デフォルトの名無しさん
NGNGこれじゃダメなんかい?
ttp://support.microsoft.com/default.aspx?scid=kb;ja;173687
0991デフォルトの名無しさん
NGNGそれだと権限がLocalSystemのままだから危なくない?
ってリンク先にも書いてるけど
0992979
NGNGリストボックスの文字色を変えるにはどうしたらいいんでしょうか?
エディットボックスの場合には、WM_CTLCOLOREDITをつらまえて
SetTextColorで変更できたのですが、
リストボックスの場合は、WM_CTLCOLORLISTBOXをつらまえて
SetTextColorをやっても変更されません。
フォントの種類は変更できました。
リストボックスの文字色は、部分的にではなく、
全体としての文字色を変えたいです。
検索してオーナードローが出てきたのですが、
オーナドロー時にSetTextColorをやっても変更できませんでした。
よろしくお願いします。
0993デフォルトの名無しさん
NGNG[SetWindowPos]
∀・)っ[カスタムドロー]
0994デフォルトの名無しさん
NGNGUIの部分だけVBで作るっていう手もあるけど・・・
0995デフォルトの名無しさん
NGNGAPIがあったと思うんですが、関数名なんでしたっけ?
誰かご存知の方ご教授願います
0996デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNGできるのはリストコントロール。
0999デフォルトの名無しさん
NGNGこれです。ありがとうございました!
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。