Win32API 質問箱 Build9
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGWin32 Application *Programmer* Interface
についての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。
でも、質問する前に検索ぐらいしる!!
0002デフォルトの名無しさん
NGNGWin32API 質問箱 Build8
http://pc2.2ch.net/test/read.cgi/tech/1040964626/
Win32API 質問箱 Build7
http://pc3.2ch.net/test/read.cgi/tech/1036654893/
Win32API 質問箱 Build6
http://pc3.2ch.net/test/read.cgi/tech/1032548635/
Win32API 質問箱 Build5
http://pc3.2ch.net/test/read.cgi/tech/1028580373/
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html
参考
MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
猫でもわかるプログラミング
ttp://www.kumei.ne.jp/c_lang/index.html
0003デフォルトの名無しさん
NGNG乙。
0004デフォルトの名無しさん
NGNGカレー
0005デフォルトの名無しさん
NGNGProgrammingだろ
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGProgrammerになるべき根拠がぜんぜん見出せなかったんだが。
>>7の言うとおりネタスレなのか?
0009デフォルトの名無しさん
NGNGWin32 Aplicationプログラミング
http://pc2.2ch.net/test/read.cgi/tech/1044267746/
だってネタスレなのに次スレとして使おうとしたくらいなんだから。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGWin32 Aplicationプログラミング
http://pc2.2ch.net/test/read.cgi/tech/1044267746/
00141
NGNG何がどうなっているとネタスレなんですか?
誰か特定の人物がやっていることで
IP抜いて別人と判明したらネタスレなんですか?
だったら、今すぐ削除依頼出してきます。
0015デフォルトの名無しさん
NGNGネタですか?
0016デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG次スレとして再利用すれば?
もちろんわざわざ保守まですることはない。>>13を使い終わった
ときに落ちてたら立て直せばすむこと。
0019デフォルトの名無しさん
NGNGほっとけ。
0020デフォルトの名無しさん
NGNGなんだか作者のオナーニみたいに見えるんだけどさ。
0021デフォルトの名無しさん
NGNG何も知らない人の手がかりにはなるから、初心者を誘導して説明を省くのに使える。
何か不満があるのなら自分で書いてみたらどうだ?
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGコピペでビルド・実行できるのでめんどくさがりの漏れには役に立ったよ。
0024デフォルトの名無しさん
NGNG本買うのは面倒だし、(やたら高いしw)
bccでコピペだけでは動かないから、
いい勉強にもなった。
0025デフォルトの名無しさん
NGNGどのようにすればよいのでしょうか。
先達のお知恵を拝借したく。
0026デフォルトの名無しさん
NGNGEnumFontsとかEnumFontFamiliesEx。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGこれを使用してやるみたいに、httpのフォルダ内のファイルを列挙する方法
ってあるんでしょうか?
どなたか教えてください。
このスレが見つけられず、別のスレにも同じ質問をしていますが、
ご勘弁を。
0030デフォルトの名無しさん
NGNG一般的な方法は無い。サーバの設定でそのdirectoryのlistingが
許されている場合は、単純にGETして返された中身をパースする
ことはできるだろう。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGAPIでは用意されていない。
自力で何とかするしかない。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGサーバが対応してなきゃな。
0035名無しさん
NGNG今回はじめてWin32API触るので、よくわからないんです・・・(泣
0036デフォルトの名無しさん
NGNGAPIで触らなくても、それぞれの言語にあるファイル入出力でやればいいと思うよ
APIでやってもそう変らないけど
0037名無しさん
NGNGちなみに、OSはWindows2000、VC6.0です。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGSetWindowText
0041名無しさん
NGNG排他処理…ですか。具体的に言うとどんなかんじでしょう?
0042デフォルトの名無しさん
NGNGタイトルバーの文字ではなく、タイトルバーそのものを消したいのですが。
0043デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGSetWindowLong
0046名無しさん
NGNG一応こんな感じでやってたんですが・・・何かマズいところってあります?
DCB dcb;
GetCommState(comHandle, &dcb);
dcb.BaudRate = 1200;
dcb.ByteSize = 8;
dcb.StopBits = ONESTOPBIT;
dcb.Parity = NOPARITY;
dcb.fBinary = TRUE;
dcb.fTXContinueOnXoff = FALSE;
dcb.fOutX = FALSE;
dcb.fInX = FALSE;
SetCommState(comHandle, &dcb);
COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = MAXDWORD;
timeouts.ReadTotalTimeoutMultiplier = 0;
timeouts.ReadTotalTimeoutConstant = 0;
timeouts.WriteTotalTimeoutMultiplier = 100;
timeouts.WriteTotalTimeoutConstant = 100;
SetCommTimeouts(comHandle, &timeouts);
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG対応したアイコンを表示させたいと思っているのですが、
アイコンはどうやって取得すればいいのでしょうか?
0049デフォルトの名無しさん
NGNGhttp://www.google.com/search?q=%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3+%E5%8F%96%E5%BE%97
0050デフォルトの名無しさん
NGNGSHGetFileInfo
0051デフォルトの名無しさん
NGNGmallocとGlobalAllocの違いはなんですか?
0052デフォルトの名無しさん
NGNGmallocはライブラリが管理、GlobalAllocはWindowsが管理。
違ったっけ。
0053デフォルトの名無しさん
NGNGなんかGlobalAllocはちょっと遅いとか拡張性が低いとかで・・
0054デフォルトの名無しさん
NGNGレイヤが違う。GlobalAllocの方が低レベルで、mallocはその上に成り立っている
(かもしれない)ってこった。
0055デフォルトの名無しさん
NGNGよく耳にする話だね。
GlobalAllocは移動可能だからじゃないかな。
005651
NGNG0057デフォルトの名無しさん
NGNG今 TrackPopupMenu[Ex] を使ってショートカットメニューを表示しているのですが
画面中央付近に少し長めのメニューを表示すると一部が画面から飛び出してしまいます。
こういった時にメニューが画面におさまるよう移動してやるにはどうすればよいのでしょうか。
あるいはメニューを表示する前にメニューの描画サイズを得る方法はあるのでしょうか。
ご存じの方いらっしゃいましたらよろしくお願いします。
0058デフォルトの名無しさん
NGNGHGLOBALを要求するAPIを使う時だけGlobalAlloc
0059デフォルトの名無しさん
NGNGブレーク設定しないのかな
006051
NGNG0061デフォルトの名無しさん
NGNG取得するにはどうすればいいのでしょうか?
宜しくお願いします。
0062名無し@沢村
NGNGSHGetFileInfo()
0063デフォルトの名無しさん
NGNGVBにて、他アプリケーションをコントロールするプログラムを作っていますが
コンボボックスから任意のアイテムを選択するところで、つまづいています
任意のアイテムを選択表示することは、センドメッセージでできました。
SendMessage(ByVal Handle_No, ByVal CB_SETCURSEL, ByVal Item_No, ByVal 0)
ただ、アイテムが変更された時にに、動くべきプログラムの処理がされません。
恐らく、アイテムが変更されたという別のメッセージを発行しなければいけないと、
思うのですが。。
どうすれば良いのか、教えてください。
よろしくお願いします
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGありがとうございます!
006763
NGNGうまくいきませんでした
WM_COMMAND でのメッセージの送信方法が間違っているのか
CBN_SELCHANGE コードでは無理なのか調査してます
何か、情報がありましたらお願いします
0068デフォルトの名無しさん
NGNGSHGetFileInfoでネットワークのアイコンと名前って取得できるのでしょうか?
取得できる場合は引数になにを与えればいいのでしょうか?
よろしくお願いします。
0069デフォルトの名無しさん
NGNGネットワークコンピュータ
::{208D2C60-3AEA-1069-A2D7-08002B30309D}
0071デフォルトの名無しさん
NGNGドロップダウンリストにしているのですが、
▼を押したときにきれいに表示されません。
すごく細かったりします。
キーボードの上下キーで選ぶことはできるので、
表示の設定がまずいのだと思いますが、
どこをいじればいいのやらわからないです。
初歩的で申し訳ないですが、よろしくお願いします。
VC++のリソースエディタ使ってます。
0072デフォルトの名無しさん
NGNGデザイン時に▼部分を押すとドロップダウンの長さが変えられる。
007371
NGNGできました。
0074デフォルトの名無しさん
NGNGテキストボックスに直接int型の変数を表示させたいのですが、どうしたらいいのでしょうか?
SetDlgItemTextだとchar型しか受け付けてくれなくて・・・(泣
お願いします。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGスレッドで同期をとるにはどうしたらいいでしょう?for文やwhile文を使うとCPUを占拠しちゃって・・・
お願いします。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG( ´∀`)< ぬるぽ
0080デフォルトの名無しさん
NGNG( ´∀`)< お○んぽ
0081デフォルトの名無しさん
NGNG表示する前に何でも sprintf を使って 文字列に変換した方がよくないかな。
これならどんなデータでも表示できる。
0082デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGスミマセン、APIでやってます。
あと、時間の書き込み方法もお願いします。
0085デフォルトの名無しさん
NGNGありがとうございます!
0086デフォルトの名無しさん
NGNG(メモ帳とかIEのアドレスバーなど)か判断するAPIって
ありますか?
0087デフォルトの名無しさん
NGNG参考になるドキュメントなどを教えてください。
なにかキーワードでも構いません。Googleりますから。
0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG有難う御座います。
いろいろとリソースが見つかりました。
0090デフォルトの名無しさん
NGNG'さ'?
>>86
多分、ない。
ウインドウクラスから判断するとかどうだろう?
どんな用途に使いたいの?
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGこれでネットワークのパスを取得するとszPathにNULLが帰ってくるのですが
何か制限があるのでしょうか?
環境はWin98SEです
0093デフォルトの名無しさん
NGNGウインドウリサイズのときに出てくる枠というのは、専用のAPIがあるのですか?
rectangle()でやってたりするんでしょうか?
0094デフォルトの名無しさん
NGNG専用のAPIがありますが、むしろrectangle()がいったいなんなのかすげぇ気になるんだが。
0095デフォルトの名無しさん
NGNG矩形だろう。
0096デフォルトの名無しさん
NGNGそのAPIを教えて下さい
0097デフォルトの名無しさん
NGNGCSIDL_NETWORK はnamespace hierarchyにだけ存在して目に見えるファイルシステム
ではないためSHGetSpecialFolderPathのような物理的なファイルパスを求め
るようなものではエラーになる。デスクトップ上のパス(ショートカット)を求めるのなら
CSIDL_NETHOOD でしょう。ITEMIDLISTを求めるAPIではエラーにはならないよ。
0098デフォルトの名無しさん
NGNG>>69
0099デフォルトの名無しさん
NGNG調べてないけど DnsQuery とかでできないかな?
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG1:windowsプログラムはなぜ2つの関数に分けられているのか?
2:メッセージを用いたプログラムとOSのやりとりを採用しているのはなぜか?
3:WinMain関数においてWNDCLASS構造体をwindowsへ
登録する処理が含まれるが、なぜそのような処理が必要なのか?
この三つがよくわからんので 教えてください
0102デフォルトの名無しさん
NGNG1.んな?初期化とそのウインドウ用のイベントハンドラ群(御幣あり)
2.そうしたかった。としか。
3.クラスとインスタンスの関係だと思われ。
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG1.EntryとWndProcを同じ関数にすることは不可能ではない
2.当時(今も?)、GUIと相性がよいと考えられていた
3.クラス登録は必須ではない
0105このレスの1/3くらいはネタでできています
NGNGFocusRectとかFrameRect(FrameRgn)とかSetPixelとか
0106デフォルトの名無しさん
NGNGこれらを除いた描画領域の大きさを取得するにはどうしたら良いのでしょうか?
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG普通に差分を取ったらまずい?
0109デフォルトの名無しさん
NGNGどんなウィンドウだ? それ。
0110デフォルトの名無しさん
NGNG俺はお前の相談屋じゃねーんだぞ。
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG出遅れたがひとことふたこと書かせてもらうぞ。
あんたがどこに書いたか知ってるような気がするな。
忘れたというんじゃそっちをフォローすることもできまいが少しは
申し訳ないと思ってるんだろうな?
本題はこれから。
プログラムを作る上でめちゃくちゃ重要なことだからよっく読めよ。
その「何処に書いたか分からなくなってしまう」ような作業習慣を改めろ!
やったことは全部メモしておけ!
目の前にコンピュータとテキストエディタがあるだろうが!
以上だ。
0113デフォルトの名無しさん
NGNG奴らはそのメモしたものがどこにあるかすら思い出せないんだから。
0114デフォルトの名無しさん
NGNGいい質問だ
反問ですまんが
1:なぜ関数は1つでなければならないのか?
2:アプリとOSがやりとりする手段は他に何があるか?
3:標準入出力にどんな特性が必要かを、誰が決めるべきか?
これらに対する、おまえさん自身の答えが
ヒントを豊富に含んでいるであろうと予言する
0115デフォルトの名無しさん
NGNGそのツールバー 《とやら》 をSpy++でつぶさに観察せよ
因みにGetSystemMetrics()ではなくGetRgnBox()を使う性格の問題であろう
というのが漏れの感想だ
0116デフォルトの名無しさん
NGNGMFCのCRectTracker::TrackRubberBand()あたりではないか?
あの関数は中でPatBlt()等を使った力業をやっているだけだったような...
このスレで答えられるのはここまでだ
0117106
NGNGまずくないです。ただ、問題があるとすれば、ちょっと面倒かもしれません。
>>109
SPY++を見たところ、どのWindowのクライアント領域にもやはり、ツールバー
などが含まれてるようですが・・・
0118デフォルトの名無しさん
NGNG(クライアント領域) - (ツールバーのGetWindowRect)
とかしか方法はないですよ。
0119デフォルトの名無しさん
NGNGサブクラス化を行う際に必要となるウィンドウプロシージャのアドレスを得るためには
クラスの(テンポラリーではない)インスタンスを生成する必要があるというのは
あまりにも当たり前のことなのでしょうか。プロシージャの差し替えだけのために
インスタンスを生成することに違和感を感じるのですが・・・。
//////////////////////////////////
class subclass {
static LRESULT WndProcMap(...); // プロシージャを選択的に実行
virtual LRESULT WndProc(...) = 0; // 実際のプロシージャは継承先で定義
void change(subclass* sc); // プロシージャをscのものに差し換える
};
class window : public subclass; // 基本となるプロシージャを含むクラス
class proc0 : public subclass; // 差し換えたいプロシージャその0を含むクラス
class proc1 : public subclass; // 差し換えたいプロシージャその1を含むクラス
window wnd;
/* Case 1 */
wnd.change(&proc0()); // こうできれば気持ちいいけど一時オブジェクトproc0()のアドレスを渡すのでもちろんエラー
/* Case 2 */
proc proc0;
wnd.change(&proc0()); // インスタンスを作ればOK
//////////////////////////////////
{
static A_base* _a;
public:
virtual void aa() = 0;
static void out(){ if( A_base::_a ) A_base::_a->aa(); }
void change( A_base* p ){ A_base::_a = p; }
};
A_base* A_base::_a= 0;
class A : public A_base{ public: A(){ change( this ); } virtual void aa(){ std::cout << "A" << std::endl; } };
class B : public A_base{ public: B(){ change( this ); } virtual void aa(){ std::cout << "B" << std::endl; } };
extern "C" int _tmain( int argc, TCHAR* argv[] )
{
A a;
a.change( ( A_base* )&B() ); a.out();
a.change( ( A_base* )&A() ); a.out();
return 0;
}
こんな感じか? 参考にならない? だったら無視してくれ。
0121120
NGNGとりあえず役には立たなそうだ。
0122デフォルトの名無しさん
NGNGINPOCOMANCONTROLSEX構造体っていうのが本に載ってたのですが、
ヘルプで検索しても出てきません。
どんな構造体なんでしょう?
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNGネタですか?
INITCOMMONCONTROLSEXの間違いだろうか、と心の中で思ってみる
0125デフォルトの名無しさん
NGNGスクロール方法を変えるにはどうすればよいのでしょうか?
0126デフォルトの名無しさん
NGNGメニュー構造見直した方が良いかと。
0127デフォルトの名無しさん
NGNGカレントディレクトリ = 起動したexeの絶対パス とは限らないですよね?
0128名無し@沢村
NGNGGetModuleFileName()
0129デフォルトの名無しさん
NGNGガイシュツだと思うけどGetModuleFileName
0130デフォルトの名無しさん
NGNGコマンドプロンプトの×ボタンで終了させられた場合、try{}cathc(...){}でも__try{}__finally{}でも
ひっかからないので、正常に終了処理が行えません。
終了イベントをトラップするにはどうしたらよいのでしょうか?
0131デフォルトの名無しさん
NGNGSetConsoleCtrlHandlerはどうでしょう
0132デフォルトの名無しさん
NGNGSetConsoleHandlerは別スレッドでハンドラがよばれるんでハンドラからthrowしても
メインルーチンのほうではcatchできないんですよ。
0133119
NGNGどうもです。つまりプロシージャを指すメンバ変数をstaticにすることで
インスタンスなしに直接アクセスできるということですね。
それだとインスタンスごとにプロシージャを差し換えることができなくなりそうですが・・・。
なんだかプロシージャをクラスでラップすることの意義がわからなくなってきました。
0134デフォルトの名無しさん
NGNG読み込みにはReadFileExを利用し、読み込みバッファは5MByte程度です。
処理開始から暫く経つとスワップが行われるのか、他アプリへの切り替えにHDDアクセスが必要になります。
windowsのディスクキャッシュのアルゴリズムの問題と聞いたのですが、回避する方法はありませんでしょうか。
基本的に一度読み込んだデータにアクセスし直すことは無いので、
HDDへのキャッシュされないアクセス法があればいいのですが。
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0137134
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNGWindows98以降でのDirectShowで、Indeo5のCodecの有無の判定は、
HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum\{33D9A760-90C8-11D0-BD43-00A0C911CE86}\iv55
が開けるかどうかで行うことでよいですか?
0140139
NGNG0141デフォルトの名無しさん
NGNGスレ違い
0142デフォルトの名無しさん
NGNGWINDOWS KEYなど一部のKEYを手前で止めたいのですが
DLLで普通にフックかけても素通りされてしまいます
NT系OSならばSetWindowsHookEx と WH_KEYBOARD_LL で
捕まえて止めることができましたが
98系OSで同じことをやるAPIはないですか? 無理?
調べたところSystemParametersInfoでスクリンセーバ中にして強引に止めるという
ものしか発見できませんでした
0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNGオーナードローとか言ったらど突き倒されるんだろうなと少し思った。
0146デフォルトの名無しさん
NGNGマイクから音声を取り込んでる最中にその音量を表示したいのですが、
どのようにしたらいいか分かりません。
waveIn系のAPIを使って調べるしかないのでしょうか?
それとも他に使えるAPIなどあるのでしょうか?
どなたか分かる方よろしくお願いします。
言語はC/C++かVBです。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG方向性はそれで良い。検索でソースとか見つければいいかと。
あとはDirectSoundとか・・
0150デフォルトの名無しさん
NGNGEM_SETPARAFORMATとか言ったら押し倒されるんだろうなと少し思った。
0151デフォルトの名無しさん
NGNG0152デフォルトの名無しさん
NGNGSHGetSpecialFolderPath
SHGetSpecialFolderLocation
この辺のことか?
0153デフォルトの名無しさん
NGNGああ、それです、SpecialFolderって部分はわかってたのですが
フルスペルがわからなかったもので。
ありがとうございます!
0154デフォルトの名無しさん
NGNG(DirectInput使う方法なら見つけたけど…)
前回座標との差分だと、画面端からさらにそっちに動かしたのが判らないし(汗
0155デフォルトの名無しさん
NGNG計算どうやるの?とかいうなよ。
0156デフォルトの名無しさん
NGNG画面の一番右端にいるときにマウスを右に移動したのをどうやって判断するの?って
ことだろ。なにわけのわからんこといってんのよ?
0157デフォルトの名無しさん
NGNG特別なメッセージは流れてなかったなぁ…
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGコンボボックスの表示スピード(下に伸びてくるスピード)を早くしたいのですが可能でしょうか?
可能でしたら、どういうメッセージを送ればよいのでしょうか?
よろしくお願いします
0162デフォルトの名無しさん
NGNG現在は他のウィンドウを重ねて動かすという方法なのですが
何か良い消し方ないでしょうか?
描画させる?方法を教えて頂けませんか?
0163デフォルトの名無しさん
NGNGそれがわかればおそらくいい会社に就職できるでしょう.
0164デフォルトの名無しさん
NGNGうぬぬ
もったいぶらずにお願いします
0165デフォルトの名無しさん
NGNG一旦ウィンドウを閉じる
0166デフォルトの名無しさん
NGNGまったくわからずじまいでして、、、
お願いしますー
0167デフォルトの名無しさん
NGNGおっきな四角を作ってそれで塗りつぶす。
0168デフォルトの名無しさん
NGNGInvalidateRect, InvalidateRgn ?
>>163
???
0169デフォルトの名無しさん
NGNGそのおっきな四角を消すのはどうするのでしょう?
0170デフォルトの名無しさん
NGNGもっとおっきな四角で塗りつぶす。
0172168
NGNG0173デフォルトの名無しさん
NGNG素直に最新の情報に更新をしてます。。、
0174デフォルトの名無しさん
NGNGAlt + F4メッセージを送りたいのです。
API名だけでのいいんでよろしくです。
0175デフォルトの名無しさん
NGNGXORで描いた四角の真上にもう一度XORで描くと元に戻るってやつかな?
SetROP2を調べてみたまい。
>174
PostMessage
メッセージはWM_SYSCOMMANDだったっけ?
「送信」とか「送る」とかいうとSendMessageと間違うな。
0177デフォルトの名無しさん
NGNGSendMessage(hwnd, WM_ERASEBKGND
0179デフォルトの名無しさん
NGNGSendMessage
0180デフォルトの名無しさん
NGNGSendMessageだと、相手が応答不能な場合にこちらまで応答不能になるから。
0181デフォルトの名無しさん
NGNGそれからPostではあぼ〜んされてしまうメッセージもときどきある
0182デフォルトの名無しさん
NGNGどーもでした。
SendMessage or PostMessageで普通に送れるんですか。
あとは、ウインドウクラス、ウインドウタイトル、実行ファイル名から
アプリ特定してHWND取得でいけるかなとおもた。
ちなみに偽メッセンジャー起動時にウインドウ開くの邪魔だったから
0183デフォルトの名無しさん
NGNGSelectObject(hdc,GetstockObject(WHITE_BRASH));
Rectangle(hdc,-1,-1,9999,9999);
0184154
NGNGthx。
駄目ですか…。
>159
現状はカーソルが端に来たらちょっと戻すような処理?でごまかしてます。
当然カーソルの動きがぶれます(汗
>160
いや、ハード的にはマウスは座標の概念持ってなくて相対的な動きしか検出出来ないんです。
本来取れるはずの値が取れないのが不自然に思ったもので。
0185デフォルトの名無しさん
NGNG起動パスを取得したいのですがGetModuleFileNameの第一引数には
どのAPIで取得したハンドルを渡せばいいのでしょうか?
因みに知りたいのは自分の自信のパスではなくてEnumWindowsで
列挙したハンドルのパスです。
よろしくお願いします。
0186デフォルトの名無しさん
NGNGGetWindowLong ?
0187デフォルトの名無しさん
NGNGまず、ClipCursor()でスクリーンより大きい矩形を指定してカーソルが外に
出られるようにする。しかしこうしても、カーソルがスクリーンの外にあるときは
メッセージが来ないから、タイマなりでGetCursorInfo()/GetCursorPosを呼んだらどうよ。
>>185
http://216.239.33.100/search?q=cache:TwFOROT3lsoC:www.microsoft.com/japan/support/kb/articles/J041/6/32.htm+JP175030&hl=ja&ie=UTF-8&inlang=ja
0188デフォルトの名無しさん
NGNGGetModuleFileNameは自プロセス内のモジュールにしか使えない。
PSAPI(NT)かToolhelp32(9x)使え
0189デフォルトの名無しさん
NGNG何でキャッシュなの?
http://support.microsoft.com/default.aspx?scid=kb;ja;175030
0190デフォルトの名無しさん
NGNG(´-`).。oO( 偽メッセンジャーはメインウィンドウ非表示で起動できるじゃん・・・ )
0191デフォルトの名無しさん
NGNGSendMessageあたりでいろいろ調べてるんですけど、まだ決め手となるものが
ありません。
0192デフォルトの名無しさん
NGNGてめーのダサいデザインセンスを勝手に適用すんな。
画面のプロパティで設定するからいらん。
0193デフォルトの名無しさん
NGNG禿同。
0194162
NGNGhttp://uniety.hp.infoseek.co.jp/mo.exe
を実行するとマウスの周りに色がぐちゃぐちゃっとなるのを消したいのです。
自分も相手もDelphiというのを使っておりまして、どうにかしたいのですが
そんなに詳しいわけでもなく知り合いに聞くとAPIとだけ言い残しただけ、、
どなたか助けて下さい。 それともDelphiのスレで聞くのがいいでしょうか
0195191
NGNGWindows全体をその設定にしてしまうと、いろいろと不具合が出ます。
Windowsは、黒背景で使うようにはできていません。
ある特定のアプリの一部を変更したいだけです。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGWindowsはできてるよ
できてないのはその糞アプリ
0198デフォルトの名無しさん
NGNGできました。
毎回毎回閉じてたのがばかみたい。
うざったいの消えていい感じ
0199デフォルトの名無しさん
NGNGありがとう。
ウィンドウハンドルで識別するためにGetWindowThreadProcessIdでProcessIdを取得して
Process32First等で取得したth32ProcessIDと比較してIDが一致したらって
やったのですが、一致するIDがあなませんですた。比較する対象が違うのでしょうか?
0200デフォルトの名無しさん
NGNGつーか>>187と>>189がせっかくリンク張ってやってるんだから読めよ
0201デフォルトの名無しさん
NGNGを実行した瞬間に存在するプロセスのみが列挙されるはずですが
その辺のタイミングは大丈夫ですか?
0202デフォルトの名無しさん
NGNG列挙した瞬間のものしか取り出せないわけだが
0203191
NGNG一度黒背景設定でやってみてください。もちろん、文字色は明るい色で。
他社のアプリではなく、Windowsそのものの各所で、
見えなくなるところがでてきます。
ていうか、単にAPI調べてるだけなんですけど…。
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGWindowsの画面設定にはデフォで背景黒があったはずだが、
それもおかしくなるか?
0206デフォルトの名無しさん
NGNGちゃんと隅々まで設定しろよ。めんどくさけりゃ「ハイコントラスト 黒」とかにしたら?
0207デフォルトの名無しさん
NGNGそこから各コンピューター名はどうやってゲットすればいいのでしょうか?
0208デフォルトの名無しさん
NGNG>>194落としたらすごい事になったぞ
タスクバーの汚れきえねーよ
0209名無し@沢村
NGNGヌヒよ、GetWindowModuleFileName()では駄目なのか?
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNGWhy
0212デフォルトの名無しさん
NGNGパレットウィンドウやブラシウィンドウのように一つしか無いウィンドウ
のハンドルはグローバル変数にしてしまうのが一番スマートな方法なのでしょうか?
画像は複数個読み込むことが出来て、画像ごとにウィンドウを作成します。
そしてアクティブな画像ウィンドウは、パレットウィンドウやブラシウィンドウと
SendMessage()で必要な情報をやり取りする、という形なのですが…
0213デフォルトの名無しさん
NGNGthx。
でも画面内にカーソルを置いたまま移動量がほしいので…
移動量だけ欲しいときはいいアイデアだと思いました。
>>194
すごいなこれ…
とりあえず最前面に画面と同じ大きさの窓を開いてすぐ閉じれば消えるかと。
0214デフォルトの名無しさん
NGNGハンドル解放後にハンドルに対する処理したら悲惨。
0215デフォルトの名無しさん
NGNGNTではGetWindowModuleFileNameでも
他プロセスのモジュールのファイル名は取れないぽ
0216デフォルトの名無しさん
NGNGモードレス ダイアログのハンドルは
オーナー ウインドウとメッセージ ループの両方で要るからなあ。
オーナー ウインドウにハンドルを預けておいて
メッセージ ループではSendMessageの戻りでがんがるって手もあるけど、
アプリケーション ユニークなオブジェクトなら
グローバルの方がかえってきれいじゃないか?
といってもHWND変数をextern宣言するのはいやだから
ちゃんと関数で隠蔽して。
0217デフォルトの名無しさん
NGNGこれの4つ目の引数のflFlagsのフラグの意味がよくわかりません。
MAPI_DIALOG 、MAPI_LOGON_UI 、MAPI_NEW_SESSION
の使い分けってどういう風に行うのでしょうか?
ご存知の方がいたらご教授お願いします。
0218デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/en-us/mapi/html/_mapi1book_c_mapisendmail.asp
0219デフォルトの名無しさん
NGNGWindowsXP上で赤外線通信を行うソフトを作ろうと
思ったのですが、どうやったら良いのでしょうか?
WinCEではIrSockを使うらしいことまでは分かったんですが・・・
XPでも同じで良いんでしょうか?
それと、WindowsXP標準の赤外線通信ソフトを無効にすることは
出来るのでしょうか?
Socket関係はあまり使ったことがなく、困っております
先達のお知恵を・・・
022086
NGNG>90
ネットが使えなかったので返事ができませんでした、すいません。
マウスをグローバルフックするDLLを作っり、ダブルクリックした場所が
テキスト入力可能な場所ならソフトウェアキーボードを立ち上げるような
プログラムを作ろうとしています。
テキスト入力可能か判断する方法が知りたいのですが。
メモ帳などのエディタだけでなくIEのアドレスバーなどでも判断できるようにしたいので
ウインドウクラスから判断するのは難しいと思うのですが。
0221デフォルトの名無しさん
NGNG事実上不可能な気もします。
0222デフォルトの名無しさん
NGNGIMEでも作るんですか?
0223217
NGNGすいません。もちろんMSDNはちゃんと見ていますが、あの説明だけではとても理解できませんでした。
もしわかるのなら教えてもらえないでしょうか?
0224220
NGNGIMEなんて代物は作れませんが、ダブルクリックで立ち上がるソフトウェアキーボードを作る感じです。
フックDLLは既に作ってますが、フォーカスイベントなどを処理すればなんとかなるのかなぁ・・・。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGGetCaretPos()を実行して座標が0,0なら入力不可と仮定。
完璧じゃないけど。
0227デフォルトの名無しさん
NGNGうん、Windowsのエディット関係使ってないやつとか。
0228220
NGNGIMEで調べるとImmSetOpenStatus関数が使えそうな気がしました。
IMEを開こうとして関数の戻り値が0以外ならテキスト入力可能だと判断できるような気もします。
この場合、無駄にIMEが開いてしまうという副作用もありそうですが・・・。
0229デフォルトの名無しさん
NGNGだからあなたがIMEを作るんですよ。
0231デフォルトの名無しさん
NGNGエラーダイアログとかワトソン博士とか出て来ないのですが
戻り値でエラーが返るだけなんでしょうか?
0232デフォルトの名無しさん
NGNGうん
0233デフォルトの名無しさん
NGNGFillMemory(lpDest, lpSrc, var)の
varがBYTE型なのですが、
32ビット固定小数点型をセットできる関数をはないですか?
ループでやれば出来るんですが遅いんです…
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG結局どのデータ型も突き詰めればバイトストリームだってことさ。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNGCopyMemoryしたほうがいいんでない?
0238デフォルトの名無しさん
NGNGHBITMAP CreateDIBSection(
HDC hdc, // handle to DC
CONST BITMAPINFO *pbmi, // bitmap data
UINT iUsage, // data type indicator
VOID **ppvBits, // bit values
HANDLE hSection, // handle to file mapping object
DWORD dwOffset // offset to bitmap bit values
);
これで*ppvBitsには確保されたメモリーのアドレスが格納されると思うのですが、
これって使い終わったら自分で解放しなきゃいけないんでしょうか?
もし解放しなきゃいけないならfreeですか?それともdelete?
0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNGデバイスに依存しないビットマップのメモリを割り当てます。
後でDeleteObject関数を呼び出してデバイスに依存しない
ビットマップを削除すると、 オペレーティング システムが
そのメモリのハンドルをクローズします。
と書いてある
0241デフォルトの名無しさん
NGNG値そのものは10進だとか16進だとか関係ありません。
取ってきた値を16進で表示したいならprintfでもつかえば?
0242デフォルトの名無しさん
NGNGサンクス
今度から下の方までよく読みます
0243239
NGNGごめんなさい、よく分からないで質問してました。
WINAPI WinMain でprintfを使うにはどうしたらいいか分かりません。
stdio.hをインクルードすればmain()がないとエラーが返されてしまいます。
どのようにしたらよろしいのでしょうか?
0244デフォルトの名無しさん
NGNGコンソールアプリケーションにすればいいよ。
0245239
NGNGウインドウとコンソールは一緒に出来ないんですね・・・
ありがとうございました
0246デフォルトの名無しさん
NGNG指定したらコンソールって作れますか?
ちらっと変なウインドウとか出さずに。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGできるよ
0249デフォルトの名無しさん
NGNGAllocConsole すれば コンソールが出るし
窓とコンソールの両方を出す事も出来る
0250239
NGNG0251デフォルトの名無しさん
NGNG/subsystem:consoleのアプリから余裕でウィンドウを開けますが
0252239
NGNG解決法はないでしょうか?
0253デフォルトの名無しさん
NGNGコンソールアプリじゃないと、scanfとかは CRTが違うから初期化されてないわけで
後から使う為には自前で初期化しないと・・・・ それは環境依存だね。
DelphiのWriteとかは直接出力可能なんだけどね。
0254デフォルトの名無しさん
NGNG0255239
NGNGほかの方法考えます。
ありがとうございました。また聞きに来るかもしんないです
0256デフォルトの名無しさん
NGNGって当初の目的はメモリ内容の16進表示なわけだから、
コンソールにせずwsprintfとTextOutで表示すればいいと思われ。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGCreateWindowEx するとエラーになってしまいます
同じコードで "BUTTON" "EDIT" "LISTBOX" などは作ることができます。
インクルードやリンクのミスは無い筈です。
なにか思い当たる事が御座いましたら、教えてください。
InitCommonControlsEx には
sizeof( INITCOMMONCONTROLSEX )
0x3FFF
を入れてます。
#include <commctrl.h>
#pragma comment( lib, "comctl32.lib" )
0259デフォルトの名無しさん
NGNGユーザーデータを渡せないコールバック関数(AbortProcやDrawStateProc)は
どのようにしてサブクラス化したら良いのでしょうか?
幸いAbortProc、DrawStateProc共にHDCが渡されるので
リスト構造で親クラスを作成し、以下のようにポインタをたどってHDCを探していけば解決できそうなのですが
BOOL CALLBACK AbortProc(HDC hdc, int iError)
{
for(CBase *p = m_lpTop;p->m_lpNext;p = p->m_lpNext)
if(p->m_hDC == hDC) p->OnAbortProc(iError); // サブクラス側の関数の呼び出し
}
ウィンドウプロシージャのように大量に生成されると予測できるものはこれでもよさそうですが、
滅多に使わないプリンタ関係のクラスにここまで大げさなモノはあまり作りたくありません。
どなたか、もっと簡単に実現できる方法をご存知でしたらぜひとも教えてください!
お願いします。
0260デフォルトの名無しさん
NGNGこれ知ってるとだいぶ違うから覚えておくといいよね
0261名無し@沢村
NGNGOutputDebugString()
0262tantei
NGNG●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0263デフォルトの名無しさん
NGNGchar *ooo;
ooo = &aaa;
ってした時に、a[1]の値だけを*oooかoooを使って取り出すにはどうしたらよろしいのでしょうか?
よろしくお願いします。
0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG皮はむけ。
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGwin32APIとどう関係があるのか?
0269デフォルトの名無しさん
NGNGooo = aaa;
ooo[1]
で取り出せる。 と、釣られてみた。
0270デフォルトの名無しさん
NGNG','でも取り出せるよ
0271267
NGNG0272デフォルトの名無しさん
NGNGaaa[1]は取り出せるけどa[1] は知らん
0273デフォルトの名無しさん
NGNGListView_GetItemPositionとかで出来ますか?
0274デフォルトの名無しさん
NGNGListView_GetNextItem
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNG>>275
LVNI_ALL | LVNI_SELECTED と共に使用して出来きました。
感謝。
0277デフォルトの名無しさん
NGNG誤>char *ooo;
正>char(*ooo)[10];
それから、このスレで聞くならTCHARくらい使え
0278デフォルトの名無しさん
NGNG(゚Д゚)ハァ???
0279デフォルトの名無しさん
NGNG本気で言ってるのか?
詳細を書いてないところがマジっぽい
釣り師ならいい腕だ
0280デフォルトの名無しさん
NGNGすみません、_TCHARはダメですか?
0281デフォルトの名無しさん
NGNG_TCHARはVC++固有(たいていのWin32処理系には互換のため
存在するけど)だからスレ違い
0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNGやはり釣りじゃ…
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGCreateWindowで指定するのはクライアント領域ではなくウインドウの大きさですし、
GetClientRectはあってもSetClientRectはないです・・・
0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG複数行のメニューとか作らなければ、それで十分だったんじゃ。
0291デフォルトの名無しさん
NGNG複数行メニューを作ろうとしなくても、メニューのフォントサイズをユーザーが大きい物に
してるとメニューが複数行になっちゃったりする。
そして複数行になるかどうかは判断できない。
だから役に立たない。
0292デフォルトの名無しさん
NGNGWindowsMeで動くAPIを教えてください。
APIやらVB組み込み関数やら4つ試しましたがいずれも
2000では動きましたがMeでは動きませんでした。
0293デフォルトの名無しさん
NGNGどのAPIでどんなコードがダメだったの?
ShellExecuteでいけてるみたいだけど
0294デフォルトの名無しさん
NGNG' ShellExecute 0, "open", "http://xxx.xxx..net/picture.asp?FileN=" & Index & ".jpg", vbNullString, App.Path, 1
ごめんなさい。ファイルの起動ではなくてブラウザの起動です。
ちなみに手元の本「VisualBasicTips1000+では、この関数Meは対応してないとかいてある。
あとWebでShellExecuteEXなるものを見つけて、いまためしてるところです。
ファイルは開くのですか・・・。
0295デフォルトの名無しさん
NGNG0296tantei
NGNG●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0297292
NGNGしかし原因が判明
Meで動作テストさせてるやつが、どうもこちらが最新のプログラムを渡してるのに、
そのプログラムを使わないで勘違いで古いやつをつかって動かないといっているだけだった。
スマソ
0298デフォルトの名無しさん
NGNG( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←Meで動作テストしてる香具師
0299デフォルトの名無しさん
NGNG#inlcude <windows>
using namespace std;
ていう風にはできないの?
0300デフォルトの名無しさん
NGNG無理です。windows.hはstd名前空間に包まれていません。
0301bloom
NGNG0302仕様書無しさん
NGNG以下の内容のテキストファイル "windows" を、インクルードフォルダに作成しろ。
#ifndef _INC_STD_WINDOWS
#define _INC_STD_WINDOWS
namespace std {
#include <windows.h>
}
#endif
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGstd::を付けなければならなくなる、それだけ。
0306デフォルトの名無しさん
NGNGいやお前、ネームスペースのこと理解してるか?
0307デフォルトの名無しさん
NGNGん?言いたい事がよくわからんが。ただ、Win32 API関数名を
わざわざstd名前空間内に放り込んで何のメリットがあるのかと。
0308デフォルトの名無しさん
NGNGそんな事は 299 に訊いてくれ。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGそのDLLがアンロードされないように気をつければいいんでないの
0311デフォルトの名無しさん
NGNG変数の確認用に使おうかと思いまして。
0312デフォルトの名無しさん
NGNG> STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
> CAPTION "ダイアログ"
> FONT 9, "MS Pゴシック"
たとえば↑のような場合に "MS Pゴシック", 9 といった情報を知りたいのです。
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG文字列型使いたかったらやはりMFCのCStringしかない?
0315デフォルトの名無しさん
NGNGAllocConsole()、FreeConsole()
0316デフォルトの名無しさん
NGNG/:\.____\
|: ̄\(∩´∀`) \ <先生!こんなのがありました!
|:在 |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/tochigi/
0317デフォルトの名無しさん
NGNGLPTSTR
というのは冗談で、アプリ側で好き好きに文字列型を決めていいと思う。
APIを呼び出す部分でwrapすればいいわけで。
0318デフォルトの名無しさん
NGNGどうしてですか?
0319デフォルトの名無しさん
NGNGsettimer()を消した。
0320デフォルトの名無しさん
NGNG呼び出してるつもりで、実は呼び出し忘れてたとか。
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNGchar s[5];
int iRet;
//ローカルタイムを取得
GetLocalTime(&sm);
if(sm.wMonth=2) {
strcpy(s,"2月です。");
}else{
strcpy(s,"2月以外");
}
iRet = MessageBox(NULL,s,"アドバイス",MB_OK);
}
こういう関数をメッセージから呼び出すと必ずメッセージボックスのあと
エラーになるのですがなぜですか?
0323デフォルトの名無しさん
NGNGで、
strcpy(s,"2月です。");
どういう神経してんだと。
0324デフォルトの名無しさん
NGNGメッセージボックスを表示しないようにしてもエラーになると思う。
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGchar s[10];
でエラー出すと予想
0328デフォルトの名無しさん
NGNGにあたるAPIはありますか?
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGchar s[11]; としないといけないから。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG2が半角なら問題ないわけだが。
0333デフォルトの名無しさん
NGNGつーかこういうのつまんねーし、そもそもWin32APIじゃないからやめようや。
はい次↓
0334デフォルトの名無しさん
NGNG→
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGにあたるAPIはありますか?
0337デフォルトの名無しさん
NGNGShowWindow
0338デフォルトの名無しさん
NGNGどうもです。
ついでに表示しない状態で起動するにはどうしたらよいのでしょう?
WM_CREATEに書いたらだめでした。
0339デフォルトの名無しさん
NGNGここで消しても CreateWindow() の後で ShowWindow()を
呼び出してたらまた表示される。
0340名無し@沢村
NGNGヌヒよ、CreateWindow()に渡すウィンドウスタイルからWS_VISIBLEを外せ。
0341デフォルトの名無しさん
NGNGプログラミング始めたばかりの頃の気分と
似てるな、右も左もわからず、おれには
無理と諦めていたあの頃・・・
0342341
NGNG0343デフォルトの名無しさん
NGNG結局その泥沼から自分で這い出せた奴のみがプログラマになれるわけで。
0344312
NGNG> WM_GETFONT
すみません、質問の仕方が悪かったです。
ウィンドウ(今回はダイアログ)に指定されているフォントに対応する LOGFONT を得るにはどうしたらよいでしょうか。
以下のメンバさえ分かれば他はかまいません。
どうかよろしくお願いします。
typedef struct tagLOGFONT {
LONG lfHeight;
LONG lfWeight;
BYTE lfItalic;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;
0345デフォルトの名無しさん
NGNGGetObject
0346デフォルトの名無しさん
NGNGもしかして、これと関係ある?
http://pc2.2ch.net/test/read.cgi/tech/1018239290/727
0347デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/security/bulletin/ms02-071.asp
ここの 2003/02/08 追記のことかい?
0348デフォルトの名無しさん
NGNG海外のサンプルを試行錯誤しながらいじくり回して
やっと少しずつ理解(?)できてきました。
でも、C、VC系って仕事でもほとんどやったことないから
難しい〜〜〜〜。
まだ、わからないところもあやふやなのでまとまったら
質問しまつ。そのときはよろしくです。
0349デフォルトの名無しさん
NGNGもっと沢村風に書け
0350ヌッヒー沢村 ◆4DRE6TAt5Q
NGNG0351309
NGNGレス遅くなってすみません。
DLLがアンロードされないようにって言うのは具体的にどのようにすればよろしいのでしょうか?
と言うか、どう言うことかよく分かりません。呼び出したDLLから抜け出さなければよいって事でしょうか?
0352デフォルトの名無しさん
NGNGまずどのコールバックか書くのが先じゃないか?
0354デフォルトの名無しさん
NGNG『定義されていない識別子です』となり、コンパイルが通りません。
windows.h をインクルードするだけでは使えないのでしょうか?
0355デフォルトの名無しさん
NGNGwindowsx.hをインクルードしろ。
0356デフォルトの名無しさん
NGNGそんな関数や構造体がないのでは?
0358デフォルトの名無しさん
NGNGSDKが古いのだよ。
0359デフォルトの名無しさん
NGNG> Windows NT/2000/XP: Included in Windows NT 4.0 SP3 and later.
> Windows 95/98/Me: Included in Windows 98 and later.
と書いてあるのであれだ、_WIN_VER とか何かそういう
バージョン指定の #define をしなけりゃ使えないはず。
0360354
NGNG今までそんなこと全然気にせずにやってきたので
何がなんだか分かりませんでした。
ええと、VCにサービスパックか何かを当てる必要があるのでしょうか?
それとも、#defineするだけで良いのですか?VCは6.0なのですが…
0361デフォルトの名無しさん
NGNG#defineの値が重要だよー。
いくつにするかはヘッダファイルにgrepすればわかるでしょ…。
0362デフォルトの名無しさん
NGNG今となってはVC++6は「新しい」とは云いかねるものであって、
事実VC++6のSDKヘッダは最新の物よりかなり古い。
もしVC++6のSDKヘッダに含まれていない新しい機能を使いたいのであれば、
MicrosoftのPlatform SDKダウンロードページから、新しいのを落とす必要が或る。
MicrosoftはVC++6のSPに新しいSDKを入れる気はないようだね。
バージョン絡みのマクロだが、大きくは
1) OSのバージョン(WIN_VER)
2) IE(shell)のバージョン(_WIN32_IE)
があるんで注意。勿論、普通はコンパイラに対して-Dオプションで
渡すだけでよい。SDKのinclude/にあるWin32.makあたりも参考にしる。
0363デフォルトの名無しさん
NGNG0364354
NGNGとりあえず、ヘッダファイルの中に
#define WINVER 0x0500
というのを見つけたので、よく分からないけど
プログラムの先頭の部分で#define WINVER 0x0500としたらコンパイルは通りました。
今までこういう勉強をしてこなかったのでわけ分からないですが
いろいろ調べて理解できるようになりたいです。
0365354
NGNG#define WINVER 0x0500
で使えるようになったものを使うと
> Windows NT/2000/XP: Included in Windows NT 4.0 SP3 and later.
> Windows 95/98/Me: Included in Windows 98 and later.
にあるように、NTのSP3より古いのでは実行できなくなる、って解釈でOKですか?
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGフリーのapiビュアー付属の物にはは、SS_NOTIFYなどが
載ってないみたいでした。
0370デフォルトの名無しさん
NGNGInclude
0371デフォルトの名無しさん
NGNGできるけどそのウィンドウはDLLじゃなくてexeが所有する
0372デフォルトの名無しさん
NGNGリストビューコントロールの場合はどのようにするか教えてください。
0373デフォルトの名無しさん
NGNGSendMessage( hWndLView, LVM_SETTEXTCOLOR, 0, RGB(255,255,250) );
で出来ました。
0374368
NGNGint __declspec(dllexport) __stdcall WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
HWND hwnd;
MSG msg;
WNDCLASS winc;
winc.style= CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc= WndProc;
winc.cbClsExtra= winc.cbWndExtra= 0;
winc.hInstance= hInstance;
winc.hIcon= LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor= LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName= NULL;
winc.lpszClassName= TEXT("ahohhh");
if (!RegisterClass(&winc)) return -1;
いきなりこれで-1が返って来てしまうんですが、どうしてかわかりません。
EXEの時には作れてたと思うんですが・・・
0375デフォルトの名無しさん
NGNG0376368
NGNG助言ありがとうございました。
0377368
NGNGWinMainを呼び出す時に値を渡したいときはどうしたらよろしいのでしょうか?
もしくは、値を渡さず呼び出すにはどうしたらいいでしょうか?
(HINSTANCE hInstance などに値が入らないようにしたいのです )
0378デフォルトの名無しさん
NGNG>値を渡さず呼び出すには
無茶いわないの。
0379368
NGNGほかの関数からWinMainを呼び出して、HINSTANCE hInstanceの値を使う時ってどうすればいいのですか?
0380デフォルトの名無しさん
NGNG何がやりたU co82セよ・・・
0381380
NGNG「何がやりたいんだよ」と書いたんだが
0382デフォルトの名無しさん
NGNGで、先のWinMainはプログラムエントリではない、と。
0383デフォルトの名無しさん
NGNGこれって2度同じこと書いてることにならない?
0384368
NGNGもう全部書いちゃいますと、VBからCとAPIで作ったDLLを呼び出して、
そのDLLでウィンドウを作る。
作ったウィンドウの中で作業し(コールバック等も使用)値をまたVBに戻す
ってことをしたいと思ってます。
ですので、呼び出す関数はWinMainじゃなくてもいいので、ウィンドウを作成して
hInstance等の値さえ取れればどう言う方法でもかまいません。
>>383
すいません、そこら辺はコピペでやってたのでよく分かりませんでした・・・
0385デフォルトの名無しさん
NGNGShell Namespaceでごみ箱やマイコンピュータのような仮想フォルダ(アイコン)を
デスクトップ上に作成しました。
この時、このアイコンに他のファイルをD&Dし
そのファイルに対して何かしらの処理を行いと思います。
Shell ExtensionのようにレジストリにDropHandlerを定義し
DLLにIPersistFileとIDropTargetをインプリメントすれば可能かと思いましたが
アイコン上にドラッグしても何も反応しませんでした。
このイベントを取得するにはどのようにすればいいのでしょうか。
Shell Extensionでは上手くいっているのですが。
0386デフォルトの名無しさん
NGNGDllMain使ってる……よね?
0387368
NGNGDllMainってただの宣言か何かだと思ってました・・・
で、DLLが他のプログラムから呼び出されるとまず最初にDllMainが実行されて、
それから呼び出した関数が実行されるって感じでよろしいのでしょうか?
それで、hinstDLLがhInstanceに当たる物って事でよろしいでしょうか?
0388デフォルトの名無しさん
NGNGだったら、GetModuleHandle(NULL)がヨロシ
0389デフォルトの名無しさん
NGNGhInstance渡すの?
0390368
NGNGDLLです。
ってことはGetModuleHandle(NULL)をDLL内で指定すればどこでもDLLのhInstanceが得られるってことですね?
0391デフォルトの名無しさん
NGNGあやふや、スマン。
0392デフォルトの名無しさん
NGNGDLLのHINSTANCEが欲しいならDllMainの引数保存しとけ。
0393368
NGNGその方向で行かせてもらいます。
0394デフォルトの名無しさん
NGNGWinMainに返すってことは出来るのでしょうか?
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG構造体に入れてそれを返せばできる。
0398デフォルトの名無しさん
NGNGありがとうございます。
0399デフォルトの名無しさん
NGNGstd::pairもしくはboost::tupleを使え。
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNGC、C++をフリーのコンパイラを使って勉強してるんですが
Win32APIはVBかVC++環境でしか使えないんでしょうか?
Win32API関連の書籍の冒頭部分を読むと大抵の本はそのふたつの環境の
ことを前提に書いてあるようなので…。
全部読めばわかったのかもしれないんですけど
2時間ほど本屋でいろいろ読んでたら店じまいになってしまったので
ネットで検索したんですが、どこみてもVC++前提なんで…
C、C++とフリーコンパイラ環境では無理なんでしょうか?
Windowsプログラムつくりたいんですけど
フリー環境では無理があるでしょうか?
0403デフォルトの名無しさん
NGNG0404402
NGNGCの入門書についてたやつをそのまま使っています。
なにやらgccやbccのほうが人気があるようですが…
0405デフォルトの名無しさん
NGNGLSI-Cの試食版ではWindows GUIのプログラムは作れないよ。
せめて Borland-C++ 5.5.1 にしとけ。
windows.h をインクルードすれば、Win32API関数は使える。
0406402
NGNG返答ありがとうございます。
助かりました。
Cの入門書をひととおり終えて
今更ながら
「Cってwindows専用の言語でもなんでもないからwindowやwindowsの
オブジェクトを扱う関数なんてどにも載ってなくて当たり前か…」
などと絶望に打ちひしがれていた馬鹿者です。
Borland-C++ 落としてwindos.hを#includeすれば
使えるのなら、Win32API関連の本を買っても無駄な出費には
ならないようですね。
結構高い上にやたら分厚いものなので買うかどうか悩んでました。
0407385
NGNGShell Namespaceでごみ箱やマイコンピュータのような仮想フォルダ(アイコン)を
デスクトップ上に作成しました。
この時、このアイコンに他のファイルをD&Dし
そのファイルに対して何かしらの処理を行いと思います。
Shell ExtensionのようにレジストリにDropHandlerを定義し
DLLにIPersistFileとIDropTargetをインプリメントすれば可能かと思いましたが
アイコン上にドラッグしても何も反応しませんでした。
このイベントを取得するにはどのようにすればいいのでしょうか。
Shell Extensionでは上手くいっているのですが。
0408デフォルトの名無しさん
NGNG適当に答えるけど、SHChangeNotifyRegisterで監視するってのはどうよ。
0409デフォルトの名無しさん
NGNG今あなたと同じようにBorland-C++でWin32API学んでます。
もしまだインストール等何もしていないのなら、
以下のホームページが参考になります。
ttp://www.neco.nu/gohodoji/index.html
ttp://homepage1.nifty.com/tyuuki/old/cc/bcc_install.html
それとインストール後は>>1の
「猫でもわかるプログラミング」という
ホームページが参考になります。
0410385
NGNGすみません、MSDNにも載ってなかったので調べるのに時間がかかりました。
しかしこればWindows2000以降でしか使えないようですね。
それにウィンドウにメッセージが送られるみたいですが
Shellなのでウィンドウなど持っていませんし
仮にダミーを作っておく事も出来ますがあまりにスマートでないです。
何かレジストリに登録して何かをインプリメントすればShellから呼ばれるはずです。
レジストリの何処に何を登録して、DLLに何をインプリメントするのか、それが判るといいのですが。
0411デフォルトの名無しさん
NGNGmainの処理を待たせたいのですが、この場合どういう方法がありますか?
Sleepのような関数があれば良いのですが、ざっと見た所ない様子だったので
スレッドを使ってメインルーチンとの同期を取るべきなのでしょうか。
それともWaitSingleObject何とかオブジェクトを使って同期をとるのが
良いのでしょうか?
0412デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG※「ローカル エリア接続」みたいなやつ。
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGあかの他人
0417デフォルトの名無しさん
NGNG低レベル関数ライブラリと高レベルクラスライブラリ
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNGShell Commandオブジェクト
ってゆうのは?
使ったこと無いけど。
0421デフォルトの名無しさん
NGNG同じくらいの金額でC++Builder Personal買った方が便利な気もするが
0422デフォルトの名無しさん
NGNG{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
DLL内で、このループとコールバックを使って制御しようと思ってるのですが
ウィンドウの×ボタンを押すと
case WM_DESTROY:
PostQuitMessage(0);
return 0;
となりループが終わり閉じるようにしています
しかし、これをやるとDLLを呼び出す側の親ウィンドウも閉じてしまいます
解決法はないでしょうか?
0423デフォルトの名無しさん
NGNGなんの本?
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNGWM_CLOSEを処理してみれば
0426デフォルトの名無しさん
NGNGDestroyWindow()
0427デフォルトの名無しさん
NGNGPostQuitMessageとGetMessageの仕組みを良く理解してみよう
0428422
NGNGどう言うことかさっぱりわかりません・・・
PostQuitMessageから受け取ったメッセージをGetMessageはさらにどこかに送ってるとかのことですか?
0429デフォルトの名無しさん
NGNGデバッガがないととてもやってらん・・・
0430デフォルトの名無しさん
NGNG低脳(w
0431385
NGNG有難うございます。
調べてみましたがそれはダブルクリックをした際の動作の設定みたいです。
いわば関連付けと同じ物のようです。
D&D時の呼び出し方法なのでこれとは残念ながら違いました。
0432デフォルトの名無しさん
NGNGアプリケーションはWM_QUITで終了するように作られてるわけだよね?
GetMessageはWM_QUITを受け取ると0を返すから、
whileを抜けるようになっているわけだ。
PostQuitMessageを削除すれば望みの動作になるんじゃないかな?
0433デフォルトの名無しさん
NGNGCommand=REG_EXPAND_SZ:"rundll32 ..."
の部分を
Command=REG_EXPAND_SZ:"Hoge.exe %1 ..."
のようにすれば、もしかしたらドロップした時に%1には
パス名がついて起動されるのかな、と思ったのだけど。
0434422
NGNGEXEで一度ウィンドウを開いて、DLLを呼び出してさらにそのDLL内で別のウィンドウをもう一つ開こうとしています。
だから、結局、親ウィンドウと子ウィンドウの2つが開かれるわけです。
で、DLLで開かれた子ウィンドウのほうを閉じると親ウィンドウも閉じてしまうのを直したかったのですが・・・
それと、もう一つ不具合が・・・(T_T)
DLL側の子ウィンドウですが、DLLにせずEXEにすると起動して計算しすぐに閉じるようなプログラムにしてあります。
それをそっくりそのままDLLにしたら起動して計算後ウィンドウが消えずに残ってしまっています。
DestroyWindow()を使ってもいいのですが、ウィンドウが残ってるってことは、まだDLL内のプログラムは動いてる(ループしてる?)ってことなんですよね?
しかも、調べてみたらreturnの値が返って来てる・・・
どうしたらいいか全然わかりません。
どなたか助言お願いします。
0435258
NGNG>>258
WC_LISTVIEW を
TEXT( "SysListView32" ) と TEXT( "SysListView" ) に変えてみたところ、
前者はエラー、後者は通ります
#define _WIN32
#define WINVER 0x0400
#define _WIN32_IE 0x0400
#define _WIN32_WINNT 0x0400
comctl32.lib のバージョンは 5.80 です
0436デフォルトの名無しさん
NGNGcomctl32.dll のバージョンは 5.80 です
0437385
NGNGそれだと例え出来たとしても普通のexeにドラッグするのと同じようになるかと。
引数制限も出るだろうしシェルの意味が無くなってしまいます。
0438デフォルトの名無しさん
NGNG良く分かんないけど、dllとexe(子と親)それぞれメッセージループを持ってるってこと?
マルチスレッドならともかく、シングルスレッドでそれをやるのはヘン
0439422
NGNGうぁ、もしかして分けわかんないことしてますか?
ほんと初心者で・・・APIとか最近知ったばかりで・・・
私の最終的にやりたいことはDLLの関数を呼び出すと今マイクから入ってきている音量を返すって
ことをやりたいだけなのですが、調べてるうちにどんどんわからなくなってしまいました・・・
もしかして、コールバックとかウィンドウ作ったりしなくても出来ちゃったりします?
0440デフォルトの名無しさん
NGNGいい加減自分で調べろ
0441414
NGNG0442デフォルトの名無しさん
NGNGDLLについて聞きたいのですが…
/* begin */
int x = 3;
BOOL WINAPI
DllEntryPoint(HINSTANCE hinst, DWORD whyCalled, void* rsv)
{
return(TRUE);
}
/* 以下にxを使うような関数が並ぶ */
/* end */
こういうファイルからDLLを作ったとします。
このDLLが、なんらかの実行ファイルから
LoadLibrary()されたとします。
外部変数のxは、メモリのどこらへんに
あるのでしょうか?
メモリにロードされたDLLの中ですか?
だとしたら、複数の実行ファイルが
1つのDLLをロードしたら、xについて
競合がおきるのでしょうか?
あと、3で初期化するように書いてますが
いつ初期化されるのでしょう?
また、constで修飾していませんが、
DLL内の関数で、自由にread/writeしたら
呼んだ実行プロセスの方に影響しますか?
0443デフォルトの名無しさん
NGNGはい。
> だとしたら、複数の実行ファイルが
> 1つのDLLをロードしたら、xについて
> 競合がおきるのでしょうか?
起きません。デフォルトでプロセスごとに別々の
物理メモリが割り当てられます(共有させることも可能)
> あと、3で初期化するように書いてますが
> いつ初期化されるのでしょう?
DLLがプロセスのアドレス空間にマップされた瞬間です。
DLLのイメージに初期値がすでに含まれています。
> また、constで修飾していませんが、
> DLL内の関数で、自由にread/writeしたら
> 呼んだ実行プロセスの方に影響しますか?
意味がわかりません。
0444デフォルトの名無しさん
NGNGwhile(メッセージ判定){
}
でウィンドウに送られてくるようなメッセージ待ちをしているのですが、待ちの
間CPU消費が大きいです。よい方法はありますか?
0445名無し@沢村
NGNGWaitMessage()
0446444
NGNGけれど。
僕はWaitForSingleObjectを使えるように努力しようと思うよ。ヌッヒー。
0447デフォルトの名無しさん
NGNGごく普通にGetMessageではいかんのか?
0448デフォルトの名無しさん
NGNGlccwin32は?
リソースエディタだけ使いまわす手もある。
0449デフォルトの名無しさん
NGNGなんかヘッダがおかしい様で
誰か回避した猛者はいませんか
0450422
NGNG0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNGMicrosoft、Windowsに依存するP2Pアプリの開発促進
http://www.zdnet.co.jp/news/0302/27/ne00_p2p.html
> 同社は2月26日、「Windows XP Peer-to-Peer Software Development Kit」の
> ベータ版をリリース。このソフト開発キットの狙いは、ソフトプロバイダーや企業の
> 開発者がWindows XP対応のP2Pアプリケーションを容易に構築できるように
> することにある。
0454名無し@沢村
NGNGMsgWaitForMultipleObjects()
0455デフォルトの名無しさん
NGNG何を指定すればいいのでしょうか?
0456422
NGNGおかげで目的のものが作れる目処が立ちました。
ほんと、ありがとうございました。
0457442
NGNG>>起きません。デフォルトでプロセスごとに別々の
>>物理メモリが割り当てられます(共有させることも可能)
この「デフォルトで」というのは
どういうことでしょうか?
別々にさせるか、共有させるか、
指定できるということですか?
0458442
NGNG指定できるならば、どうやって?
変数を宣言するときに、なんらかの
修飾をするのでしょうか。
例えば、ちょっと違うけど、
registerとかvolatileのように、
_shareとか?
あるいはコンパイラ(リンカ)で
大域変数を共有させる…みたいな
オプションをつけるのでしょうか?
それともロードするときに大域変数を
共有させるか否かを指定するのでしょうか?
LoadLibrary()には特にオプションを
指定できないようなので、他に
LoadLibraryShare()のような
APIがあるのでしょうか?
0460デフォルトの名無しさん
NGNG悪いことはいわんからAdvanced Windowsでも読んで体系的な知識を身に付けろ。
それを理解するのに必要な知識自体がかけてるから。
0461デフォルトの名無しさん
NGNGVC++なら共有したい変数は #pragma data_seg("hoge") 〜 #pragma data_seg()
で挟め。hogeは8文字以内の任意のデータセグメント名。
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGSHFileOperationで一気にコピーする方法とfopen, fread, fwrite で一つづつ複製する方法を試したのですが、どちらも駄目でした。
このような症状を避けるにはどうすればよいのでしょうか。
どうかよろしくお願いします。
0464デフォルトの名無しさん
NGNG>>136では駄目かな?
0465デフォルトの名無しさん
NGNG通信技術板住人のほうが詳しいかも。
>463
DOS時代には10〜20ファイルくらい一度にまとめてオープンしてから読み込んだり
書き込んだりしてたツールがいくつかあった。
openとread/writeを交互に行うとディスクのヘッドが管理領域とデーター領域を
往復するので遅い(SHFile〜も同じ仕組み?)
464が言うようにキャッシュの関係もあるかも。
0466デフォルトの名無しさん
NGNG9x系だけじゃなくNT系でもなるよ。
0467デフォルトの名無しさん
NGNGhttp://homepage3.nifty.com/digikei/sample/sample.html
0468デフォルトの名無しさん
NGNGGetInterfaceInfo
0469デフォルトの名無しさん
NGNGDebugビルドをした時は正常に動作するのにReleaseビルドをした時に
一部の動作が期待したものと違ってしまいます。
具体的にはCreateWindow()で作成したスクロールバーやオートチェックボックスの動作が
違います。自作のclassの動きが違っている可能性もあるのですが、ビルドの設定の違いで
プログラムの動作が違ってくる原因は何が考えられるでしょうか?
0470デフォルトの名無しさん
NGNG初期化していない領域を参照したとかデバッグモードのマクロが効いているとか依存するライブラリが違うとかそんなあたり
0471デフォルトの名無しさん
NGNGDebugライブラリのバグ。
0472469
NGNG初期化していない領域の参照というのが気になりましたので
検索したところ、それらしき情報を見つけることが出来ました。
www.bekkoame.ne.jp/ha/yoshi_s/tips/vcpp.html#debug_release
↑にあるように、変数を初期化するのとしないのとではデバックとリリースで
結果が変わるということが確認できました。というわけで、私のプログラミング作法が
ヘタレだった、という説が有力となりました。(戦場では通用しないコードだったようです)
これから、変数まわりを一つ一つチェックしてみます(;´д`)
0473デフォルトの名無しさん
NGNGMessageBoxを最前面に表示するためにMB_TOPMOSTフラグを立てていました。
しかし、とあるお客様のPCでこのフラグを立てても最背面に表示されてしまいます。
OSはWindows2000Pro+SP3 開発はVC++5.0(Non MFC)です。
自分のPCでは再現できずお客様のところへは簡単には行けません。
そこでMB_SYSTEMMODALフラグに変更したところ最前面へは表示される
ようになったのですが、そのメッセージボックスはアクティブな状態で
表示されないようです。
なにかヒントなどあれば教えてください。
0474デフォルトの名無しさん
NGNGTOPMOSTなウィンドウが他にもあったら、MB_TOPMOST指定しても、
必ずしも最前面にはならない罠。
MB_SYSTEMMODAL + MB_SETFOREGROUND はどう?
>そのメッセージボックスはアクティブな状態で表示されないようです
MB_SETFOREGROUND指定しても、自分がフォアグラウンドになるための条件(MSDNに載っ
てるはず)があるので、必ずしも望みどうりにはならない。(要裏技)
0475デフォルトの名無しさん
NGNGありがとうございます。
MB_TOPMOST+MB_SETFOREGROUNDは試してもらったのですが
だめでした。
そもそもMB_SYSTEMMODALってあまり指定しないほうがよいのかなーと
ヘルプを読んでいて思いこんでしまって。
今度、MB_SYSTEMMODAL + MB_SETFOREGROUNDを試してもらおうと
思います。
0476デフォルトの名無しさん
NGNGだめすか?
そうすか。
0477デフォルトの名無しさん
NGNGSetWindowLong関数でWS_EX_TOOLWINDOWを指定すると
タイトルバーとクライアント領域の間に隙間が出来てしまうのですが
解決する方法はありますか?
隙間の幅は数ピクセルで通常のタイトルバーとの差分ほどです。
その部分はクライアント領域ではないらしく、描画ができません。
0478477
NGNGSetWindowPos関数にSWP_DRAWFRAMEフラグでいけました。
ウィンドウスタイル変更だけでは不完全なんですね…
0479デフォルトの名無しさん
NGNG以後クリップボードが制御するので、アプリケーションが
解放してはいけないとか、CloseClipboardの後ならGlobalFreeで
解放して良いとか解説であるのですが、どっちが正しいのでしょう?
0480デフォルトの名無しさん
NGNG/:\.____\
|: ̄\(∩´∀`) \ < >>479!こんなのがありました!
|: |: ̄ ̄ U ̄:|
SetClipboardDataの MSDN の記述が、
The application can read the data,
but must not free the handle or leave it locked.
↓
The application can read the data,
but must not free the handle or leave it locked
until the CloseClipboard function is called.
と改訂されているようだ。
0481デフォルトの名無しさん
NGNG前々スレの425-437あたりも。
前々スレ : http://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
0482デフォルトの名無しさん
NGNG両方正しいそうですね。でも自分は
あえて辞めておくことにします。CloseClipboardの
後なら解放してイイよ、とは書いてないし・・・
0483デフォルトの名無しさん
NGNGCloseClipboard()後もGlobalFree()は実行してはならないし、
EmptyClipboard()が中でGlobalFree()してるんだよなきっと。
Windowsのソース持ってないからあくまで想像だけど、
そうじゃないと辻褄が合わない。
0484デフォルトの名無しさん
NGNGSetClipboardDataって、確保した領域からクリップボードの内部バッファに
転送する命令だとばかり思ってたし。
でも確かに転送するだけならGMEM_SHAREフラグは要らんわな。
使用中のGMEM_SHAREメモリを開放したら実際の開放は使用が終わるまで
遅延されるとかの安全装置が入ってると見た。
0485デフォルトの名無しさん
NGNGフルパスをなんとかして得る方法は無いものでしょうか‥‥全ディレクトリ検索以外で∧||∧
0486デフォルトの名無しさん
NGNGただ単に偶然WindowsのGCが延期されているという考え方も。
0487デフォルトの名無しさん
NGNGWin32では解放して問題ない。
0488デフォルトの名無しさん
NGNG0489485
NGNGそっちでできないとか思ってましたが、EnumProcessModulesの引数間違えてました‥鬱だ氏脳‥‥
な訳で下のコードで動きました
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId);
EnumProcessModules(hProcess, &hModule, sizeof(hModule), &out);
GetModuleFileNameEx(hProcess, hModule, filename, MAX_PATH);
printf("%s\n", filename);
CloseHandle(hProcess);
エラー処理は省略
0490デフォルトの名無しさん
NGNG実際にCloseClipboard後にGlobalFreeするとさ
自分とこでGlobalAllocしたオブジェクトは使えなくなり
他のアプリでGlobalAllocしたオブジェクトは次も使えるよな
貼り付けを行うところのコードを
そのオブジェクトがどこでアロケートされたのかに対しては
透過的に書けるのが「問題ない」ってことだと思うぜ
つまりCloseClipboard後のGlobalFreeには問題があると言いたい
0491デフォルトの名無しさん
NGNG1度目のコピーの時は問題ないけど2度目コピーしようとすると
SetClipboardDataが失敗するって現象が起きて困った事があった。
そう、原因はGlobalFreeをしていたからで、それを止めたら問題なくなった。
そのアプリからの流用だがためしに以下の関数を2度続けて実行してみるとわかる。
BOOL CTestDlg::CopyToClipboard(LPCTSTR lpString)
{
HGLOBAL hMem = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, strlen(lpString) + 1);
if (!hMem)
return FALSE;
if (::lstrcpy((char*)::GlobalLock(hMem), lpString) && OpenClipboard())
{
::GlobalUnlock(hMem);
if (::EmptyClipboard())
{
if (::SetClipboardData(CF_TEXT, hMem))
{
::CloseClipboard();
::GlobalFree(hMem); // コメントアウトすれば正常になる
return TRUE;
}
}
::CloseClipboard();
}
::GlobalFree(hMem);
return FALSE;
}
0492デフォルトの名無しさん
NGNGクリップボードは渡したデータのコピーを管理していると見た。
0493デフォルトの名無しさん
NGNG> 2度続けて実行
> SetClipboardDataが失敗する
って具体的にどうやるとどうなる?
for 文で10回ループさせてみたが何の問題もない
(TRUE を返しテキストも設定されている)ようだが。
ちなみに WinMe で実験。
夜にNT系で再テストしてみるよ。
0494デフォルトの名無しさん
NGNGOSが内部でコピーを持ってるから問題ないよ
つか、自分とこでGlobalFreeしたデータを読もうとするのは問題外。
再度クリップボードから正常に動く
0495デフォルトの名無しさん
NGNGどういう場合にコピーを作るんだ?
少なくとも490が示したデータの中には
コピーを作らない場合があるようだ
コピーがあればGlobalFreeしても構わないと言うなら
コピーがあるか否かはどうやってチェックするんだ?
磔が2回目かどうかはどうやってチェックするんだ?
透過的な操作という観点からは
CloseClipboard後のGlobalFreeは
問題だらけだよな
0496495
NGNGどういう場合にコピーを作ると《保証されている》んだ?
492や493にも同じことを問いたい
0497デフォルトの名無しさん
NGNGそのウィンドウを作成したインスタンスの
ハンドルを取得する関数ってないですか?
HINSTANCE GetInstHandle(HWND hWnd)
なんてやつ。
0498デフォルトの名無しさん
NGNGWin32 で稼動する場合に。
0499デフォルトの名無しさん
NGNGその文書が《保証している》ケースで
コピーが作られない場合を490は示している
0500デフォルトの名無しさん
NGNGGetWindowLongのGWL_HINSTANCE
0501デフォルトの名無しさん
NGNGGetWindowLong(GWL_HINSTANCE)
ただし他プロセスのウィンドウには無効
GetWindowModuleFileName() なんてのもあったが使える環境に制限があったような
0502デフォルトの名無しさん
NGNGそんなに言うんじゃコード出せ
0504デフォルトの名無しさん
NGNG示している? 何を?
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNGつまり、499 の発言はまったくの無根拠という事か?
0507デフォルトの名無しさん
NGNGGlobalFreeする場合は2回じゃないけど、数万回回してると不正落ちするけど、
GlobalFreeせずに無限ループさせても割り当てメモリ量変わらないし、
解放しないのが正しいっぽい。
0508507
NGNGクリップボードにデータをセットした後、
ハンドルをロックして解放前に0でfillしてたけど、
確実に毎回クリップボードにデータは反映されていた。
0509デフォルトの名無しさん
NGNGおまえヴァカ?
499が何の話をしているのか
読めてねーじゃねーか
>490は示している
0510デフォルトの名無しさん
NGNGわからなくて困ってます。
おしえてくさい。
0511デフォルトの名無しさん
NGNG書き捨てコードを95OSR2/98SE/Me/2kでテストしたら、
まあ、結局>>490の先頭三行は事実無根だったわけだが。
クリップボードに他アプリの(以前の)データなんて残らなかった
0512デフォルトの名無しさん
NGNGおまえヴァカ?
499 が 490 を支持する根拠は何も無いんだろと言ったのに。
根拠があるなら 490 じゃなくても回答可能だろうが。
0513490
NGNGcase WM_LBUTTONDOWN:
{
HANDLE h = LocalAlloc(LMEM_MOVEABLE, 6); // GlobalAlloc(GMEM_MOVEABLE, 6);
char* p = (char *)GlobalLock(h);
lstrcpy(p, "Hello");
GlobalUnlock(h);
OpenClipboard(hWnd);
EmptyClipboard();
SetClipboardData(CF_TEXT, h);
CloseClipboard();
}
break;
case WM_RBUTTONDOWN:
{
OpenClipboard(hWnd);
HANDLE h = GetClipboardData(CF_TEXT);
CloseClipboard();
char* p = (char *)GlobalLock(h);
MessageBox(hWnd, p, "WM_RBUTTONDOWN", MB_OK);
GlobalUnlock(h);
GlobalFree(h);
}
break;
0514490
NGNG0516509
NGNG評価していただけだが
0517デフォルトの名無しさん
NGNG> HANDLE h = LocalAlloc(LMEM_MOVEABLE, 6); // GlobalAlloc(GMEM_MOVEABLE, 6);
何で?
0518517
NGNG0519デフォルトの名無しさん
NGNG「評価」 なんてどうとでも取れる言葉を使うな。
あんたの主論は一体何なんだ?
0520518
NGNG漏れは517ではない、513だ
悪りぃ悪りぃ
0521509
NGNG490の言うことに賛成でも反対でもない
ただ490が出した情報が事実ならどうだと言ったまで
妙なバイアスを持つのを止めはしないが
つまらんよ
0522デフォルトの名無しさん
NGNGHLOCAL と HGLOBAL を同一とみなす根拠には足らないと思うけど・・・。
0523デフォルトの名無しさん
NGNG同一人物だろうけど。
0524518
NGNG0525デフォルトの名無しさん
NGNG1.GlobalAlloc() でハンドルを得る。これを A とする。
2. SetClipboardData(CF_TEXT, A) 後、ただちに GetClipboardData(CF_TEXT)
すると A が返ってくる。
3. その後 A には、GlobalLock() を使っていくらでも変更ができる。
4. CloseClipboard() の前でも後でも、GlobalFree(A) するしないにかかわらず、
次に GetClipboardData(CF_TEXT) で得られるハンドルは A とは異なる。
これを B とする。
5. B の内容も、 2. で SetClipboardData(CF_TEXT, A) した時点のもので、
A とは異なる。
つまり、3. における変更は全て無視されている。
つまり、SetClipboardData(CF_TEXT, A) の時点でどこかにコピーが確保される
のは間違いない。
つーか、CloseClipboard() の前で GlobalFree(A) しても動いてしまう。
ちなみに、GlobalAlloc() の代わりに LocalAlloc() を使っても同様だった。
0526491
NGNGあー、環境はWin2kでVC++6.0の場合です。
んでボタン押すごとに1度呼び出すようにしてみると分かりやすい。
1度目は成功するが2度目失敗する。
でも3度目はリセットされるのか成功し、4回目はまた失敗する。
その繰り返し。
0527デフォルトの名無しさん
NGNGウィンドウアプリだと何かポカする可能性が高いから、コンソールで
試してみてくれ。
そんな症状どうにも再現せん。
0528デフォルトの名無しさん
NGNG> どういう場合にコピーを作るんだ?
いちいち場合分けする必要なんてないだろ。
つ ね に じゃないの?
大雑把に疑似コードで説明すれば、こういうこと。
HANDLE g_hMem; クリップボードが持っている
SetClipboardData(hMem)
{
g_hMem = GlobalAlloc(GlobalSize(hMem));
memcpy( GlobalLock(g_hMem) , GlobalLock(hMem) );
GlobalUnlock(hMem); GlobalUnlock(g_hMem);
}
0529デフォルトの名無しさん
NGNG> case WM_RBUTTONDOWN:
> {
> OpenClipboard(hWnd);
> HANDLE h = GetClipboardData(CF_TEXT);
> CloseClipboard();
>
> char* p = (char *)GlobalLock(h);
> MessageBox(hWnd, p, "WM_RBUTTONDOWN", MB_OK);
> GlobalUnlock(h);
>
> GlobalFree(h);
> }
このコード間違ってるよな。
GlobalLock() は CloseClipboard() の前に行う必要があるはず。
0530491
NGNG#include <windows.h>
BOOL CopyToClipboard(LPCTSTR lpString)
{
HGLOBAL hMem = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, strlen(lpString) + 1);
if (!hMem)
return FALSE;
if (::lstrcpy((char*)::GlobalLock(hMem), lpString) && OpenClipboard(::GetDesktopWindow()))
{
::GlobalUnlock(hMem);
if (::EmptyClipboard())
{
if (::SetClipboardData(CF_TEXT, hMem))
{
::CloseClipboard();
::GlobalFree(hMem); // コメントアウトすれば正常になる
return TRUE;
}
}
::CloseClipboard();
}
::GlobalFree(hMem);
return FALSE;
}
int main()
{
if (!CopyToClipboard("test")) { ::MessageBox(NULL, "1回目失敗", NULL, MB_OK) };
if (!CopyToClipboard("test")) { ::MessageBox(NULL, "2回目失敗", NULL, MB_OK) };
return 0;
}
これでも2回目失敗と出る。
0531デフォルトの名無しさん
NGNG↑ここの Memory and the Clipboard という所を読むと、
SetClipboardData()した時点で確保したメモリの所有権は
システムに移って、空にするときにシステムによってその
メモリが解放されるみたいだから自分で解放したらまずいんじゃない?
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG何故かはわからないが、SetClipboardData() が成功したところで、
::CloseClipboard();
::OpenClipboard(NULL);
::CloseClipboard();
とやると失敗しないようになった。
ただ、その場合は直後の GlobalFree() が失敗するので、GlobalFree() を
呼ばないのが正解なのかも知れない。
0534デフォルトの名無しさん
NGNGを
OpenClipboard(NULL)
にしたらどちらも成功した。
0535デフォルトの名無しさん
NGNG「クリップボードのデータを他のアプリケーションでも使えるようにしますか?」
って聞いてくるアプリケーションがあるけど
あれは『はい』を選ぶとどういう処理をするんだろう。
0536デフォルトの名無しさん
NGNG普通に何もしなけりゃよいと思うが……
逆に『いいえ』で空にするんでない?
0537デフォルトの名無しさん
NGNGあれは、遅延レンダリングをやってるアプリの場合。
そのアプリを終了したら、データ渡す中の人がいなくなるだろ。
0538デフォルトの名無しさん
NGNGどうすればいいですか?
0539デフォルトの名無しさん
NGNG0540デフォルトの名無しさん
NGNGhttp://homepage3.nifty.com/digikei/ten.html
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNG>終了前に
>「クリップボードのデータを他のアプリケーションでも使えるようにしますか?」
>って聞いてくるアプリケーションがあるけど
>あれは『はい』を選ぶとどういう処理をするんだろう。
内部の特殊なデータ形式を汎用的なデータ形式(画像ならDIBとか)に
するんじゃない?
0543デフォルトの名無しさん
NGNGVC++ 6.0 なんです。
0544デフォルトの名無しさん
NGNGVC++よく知らないがMFCのヘッダ入れればいいだけじゃ?
#include <vcl.h>
#include <stdio.h>
void main()
{
AnsiString str;
str = "ぬるぽ";
printf("( ´∀`) %s\n", str.c_str());
}
>bcc32 ansistr.cpp vcl.lib rtl.lib
>ansistr
( ´∀`) ぬるぽ
↑BCBの場合はこんなんでAnsiString使えるが
0545デフォルトの名無しさん
NGNGstd::basic_string<TCHAR> を使う
0546デフォルトの名無しさん
NGNG俺も>530をやってみたらエラーになった。(Win2,VC++6.0,sp5)
上手くいく場合は偶々運が良く通ってるだけのような気がする。
Meの場合メモリ管理がいい加減だから何とかなってるのかもね。
0547デフォルトの名無しさん
NGNG「ひらがなで入力します」というツールチップを
エディットボックス以外でも表示させたいのですが
どうすればよいのでしょうか?
日本語入力がONになるタイミングは
IMN_SETOPENSTATUSでわかるんですが、
その後どうしたらよいのかが全然わかりません。
0548無言
NGNG押された時のメッセージはどうなりますか?
WM_KEYDOWNまではわかったんですが
上下右左の区別がつきません
0549デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/VirtualKeyCodes.asp?frame=true
0550547
NGNG0551無言
NGNGなぜか「○○が押された」っていうMessageBoxを
出した後OKするとでエラーがでます。
あとはbreakしてreturn(0L)で
プロシージャ―終了なんですけど・・・
なんでですか?
0552デフォルトの名無しさん
NGNG>出した後OKするとでエラーがでます。
どうして「どんな」エラーが出たのかを書かないのかねぇ。
0553無言
NGNGっていうエラーです
ちなみにMeをつかってます
すいません 大事なところ書きませんでした
0554デフォルトの名無しさん
NGNGで、エラーメッセージを省略。どこまで喧嘩を売れば気が済むのか。
0555無言
NGNGた。window4 は終了します。 閉じる(C)
問題が解決しない場合は、コンピューターを再起動して
ください。
というダイアログが二回
<不明>の部分がKERNEL32.DLLにかわって1回です。
これで大丈夫ですか
0556デフォルトの名無しさん
NGNG左矢印を押すと、(char)wParam に VK_LEFT が入るらしい。
0557デフォルトの名無しさん
NGNGhttp://www.pink-angel.jp/betu/linkvp/linkvp.html
0558デフォルトの名無しさん
NGNGそれ、WM_KEYDOWNとかいう以前の問題な気もするんだが。
WM_KEYDOWNの処理部分の流れは追ってみた?
0559無言
NGNGエラーの原因は配列のメモリが少なすぎたからでした
たかがこんなミスに・・・
すいませんでした
全くもってWM_KEYDOWNは関係なかったです
これからメモリをケチらないようにします
かまってくれてありがとうございました
0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNG方法がわからなくて困ってます。
StretchBlt だか StretchDibits だか使えばいいことはわかったんですが、
あれを使ったあと、どうやってDCからデータを取り出せばいいのかわかりません。
最終的にはBMPを縮小拡大して保存したいだけなので、
なにかいい方法があったら教えてください。
0562デフォルトの名無しさん
NGNG表示しないなら、DCを使う必要は無いんじゃないか?
0563デフォルトの名無しさん
NGNGメモリDCを作ってカキコせよ
0564デフォルトの名無しさん
NGNGおお、やっぱりあるんですか!?
見つけたAPIがDC使うもんしかなかったもんで。
あるならDC使わないやつ使いたいです
0565561
NGNGメモリDCから、
どうやればビットマップデータを
取り出すのかわからないのです。
GetObjectかな?あれは違うっぽいし。
0566デフォルトの名無しさん
NGNGGetDIBitsとかでどこかに書き出してBITMAPFILEHEADER込みでセーブ。
0567561
NGNG増色・減色のやつかと思ったけど。
とりあえず、縮小拡大のほかに
減色もやるため、GetDIBits使ってやってますが、
あれで縮小拡大もできるならありがたやです。
0568デフォルトの名無しさん
NGNG先にStretchBltでもすれば?
0569デフォルトの名無しさん
NGNGけど、画面モードによっては画質が劣化する。
0570デフォルトの名無しさん
NGNGlpwIDs
Pointer to an array of values that contains pairs of string resource identifiers and menu handles.
について質問です。
MenuHelp() の説明では
The function searches the array for the handle to the selected menu and,
if found, uses the corresponding resource identifier to load the appropriate Help string.
って言っているんですが、番兵もいない配列のポインタだけしか渡していないのに
配列のサイズが分からないはずの MenuHelp() は、どうして配列中に該当する ID がないって分かるんですか?
0571561
NGNGデキター!!!
CreateDIBSection と StretchBlt 使ったらできたよ。
こんなものがあったとは、
とりあえず、参考にしたところを貼っと期末。
http://black.sakura.ne.jp/~third/win121.html
ありがとう、毎朝あなたの事を拝むよ。
0572デフォルトの名無しさん
NGNGbmpInfo = (BITMAPINFO *) malloc (bmpFileHeader.bfOffBits - dwBytes);
ReadFile(hFile , bmpInfo , bmpFileHeader.bfOffBits - dwBytes , &dwBytes , NULL);
hBitmap = CreateDIBSection(
NULL , bmpInfo , DIB_RGB_COLORS , &bPixelBits , NULL , 0
);
ReadFile(hFile ,bPixelBits ,
bmpFileHeader.bfSize - bmpFileHeader.bfOffBits , &dwBytes , NULL);
CloseHandle(hFile);
*(lpCmdLine + lstrlen(lpCmdLine) - 4) = 0;
wsprintf(strFileName , TEXT("%s_not.bmp") , lpCmdLine);
winc.style = CS_HREDRAW | CS_VREDRAW;
winc.lpfnWndProc= WndProc;
winc.cbClsExtra= winc.cbWndExtra= 0;
winc.hInstance= hInstance;
winc.hIcon= LoadIcon(NULL , IDI_APPLICATION);
winc.hCursor= LoadCursor(NULL , IDC_ARROW);
winc.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);
winc.lpszMenuName= NULL;
0573デフォルトの名無しさん
NGNG行いたいのですがそういうAPIないでしょうか?
0574ねこま
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNGウインドウが出てるならそのウインドウハンドルとか。
0577デフォルトの名無しさん
NGNGIEなどからURLがドラッグ&ドロップされたのを取得するには
どうすれば良いでしょうか?
0578デフォルトの名無しさん
NGNGファイル名の変わりにURL飛んできたりしないの?もしくはDDEとかか。
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG「ファイルを開く」のコモンダイアログが開くようにしたいのですが、
クリックするとなぜかプログラムが終了してしまいます。
原因はどこにあるのでしょうか。
0582デフォルトの名無しさん
NGNGプロセスとウィンドウを列挙して目的のアプリを検索する。
Spy++のソースが参考になると思われ。
0583デフォルトの名無しさん
NGNG原因はあなたにあると思われます。
情報少なすぎ。
0584デフォルトの名無しさん
NGNGありがとうございます。ちょっと複雑そうですがやってみます。
0585デフォルトの名無しさん
NGNGcase でbreakがないとか・・
0586581
NGNGhDlg(ダイアログベースなのでこれが唯一のウィンドウハンドル)
でいいんですよね?
caseの中のここの部分をMessageboxにすると正常にメッセージボックスが
出ますので、case文の間違いではないと思います。
0587デフォルトの名無しさん
NGNGWM_NOTIFYだかの後にbreak忘れててたまたま動作してたんだけど
XPでビジュアルスタイル有効にしたら動きがおかしくなったことがあった
0588581
NGNGGetOpenFileNameをコールした後、なにもせず return TRUE しています。
0589デフォルトの名無しさん
NGNG疑問はないのか
0590581
NGNGこれって必須なんですね。コールしなくても問題ないと思ってました。
おさわがせしました。
0591デフォルトの名無しさん
NGNG他のアプリケーションソフトのボタンを
SendMessage の BM_CLICK で擬似クリックすると、
コールした方のプログラムは、ボタンが押された方のプログラム処理が終了するまで
待機してしまいますが、これを避ける方法ってないでしょうか?
マウスの座標を指定して擬似クリックをすれば回避できるのはわかっているのですが、
直接ボタンへのメッセージする処理で実現できる方法があれば、教えていただきたいのですが。
よろしくお願いします。
0592デフォルトの名無しさん
NGNGPostMessage使えない状況?
0593デフォルトの名無しさん
NGNG0594591
NGNGありがとうございました!
できました
0595デフォルトの名無しさん
NGNGSendMessageなんか使うから・・・
反応を待たずにF&FならPostMessageだろ
0596595
NGNG一滴益
0597デフォルトの名無しさん
NGNGBMPの一部を透明にして表示できますか?
また、できる時はどうするんですか?
0598デフォルトの名無しさん
NGNGググれ
http://www.google.com/search?q=%E3%83%93%E3%83%83%E3%83%88%E3%83%9E%E3%83%83%E3%83%97+%E9%80%8F%E6%98%8E&sourceid=opera&num=0&ie=utf-8&oe=utf-8
0599デフォルトの名無しさん
NGNGBMPを透明にするってどういう事?
そのBMPを描画しなきゃいいんじゃないの?
さもなきゃ、裏のデスクトップのDC持ってきて、矩形をコピーすりゃ
「透明に見える」んじゃない?
0600デフォルトの名無しさん
NGNGいや「一部」
よく読もう
0601597
NGNG思うんですができるだけ高速なのを教えてください
元のBMPとそのモノクロ使う方法以外にありませんか?
0602デフォルトの名無しさん
NGNGおれが勘違いしてんのかな・・・
0603デフォルトの名無しさん
NGNGCtrl+Sなどのメッセージを送ることを可能でしょうか?
以前流れてしまって・・・よろしければご教授下さい。
0604597
NGNG教えて欲しかっただけです。
なにか「SDKで」は誤解を招くような
意味を持っているんですか
0605デフォルトの名無しさん
NGNG>>598
0606デフォルトの名無しさん
NGNG介せず、直接自分でAPIを叩くことを言うな、普通。
んで多分597が言いたいのはGDIのみで処理するということだろうが、
OpenGLだろうがDirectXだろうがSDKはSDKだ。
0607デフォルトの名無しさん
NGNG602氏じゃないけど、SDKって言っても色々あるからね。WinG SDKとか。
と、姑息に切っておく。後、WinGLってなんじゃらほ。
0608デフォルトの名無しさん
NGNGまぁ、SDKで通じないことはないけど
DirectX9 SDKを使いましょうとか言われるかもよ。
とりあえずリージョンやレイヤードウインドウでググれ。
0609597
NGNGしかし本命のBMPの一部を透明にして表示
は教えてくれないんですか
一つのBMPのみでは一部を透明化し表示できないんですか
0610597
NGNG606の方がいったとおりクラスライブラリを
使わないということです。
あとWinGLとは画像の処理を高速でできるライブラリです。
しかしシュアウェアなので使いたくありません。
0611デフォルトの名無しさん
NGNGそもそも質問の意味が曖昧なんだよなぁ。
透明って事は当然そのBMPの後ろが透けて見えるはずだけど
「後ろ」は一体どこなのか?
デスクトップ?それともクライアント領域?
前者なら既に答えはでてるし、
後者ならOS限定でよければAlphaBlendという手がある。
ところで、WinGLってなんか古〜いイメージがあるけど
今でも使えるレベルのものなの?
0612597
NGNG後ろはクライアント領域です。
また概に他のBMPが貼り付け先の下にあるものと考えほしいです。
OS限定というのは具体的に何のOSのことですか
あまりに古いのでは使えないくらいなら大丈夫(Win98からなら)です。
WinGLについてですがMeで使えましたよ。
でももっと速いのはあるとおもいますが
0613603
NGNGどうか>>603にお慈悲を…、要するにShift、Alt、Ctrl付きの
メッセージを送れれば御の字なのです。
>>612
AlphaBlend使わないなら、たぶん楽な方法は無いですよ。
自前で描画用のメモリに、抜き色除いて直接転送するか、
元画像から動的にマスクデータを作るとか。
0614デフォルトの名無しさん
NGNG透明=何も書かない
SetPixel使って1pixelずつ描け。
んで、透明にしたいところは描くな
0616597
NGNGSetPixelはきついですが
AlphaBlendについて調べてみます。
ダメならアイコンでやります。
いろいろなレスありがとうございました。
0617デフォルトの名無しさん
NGNG597の目的のことができるかな。
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNG一般的じゃない事だと全然レスが付かないんだよなぁ。
俺も試したことが無いんで想像でしか言えないが、
1、対象アプリのウインドウのVIQに接続
2、keybd_eventでCtrlとかを押す
3、対象アプリのウインドウにWM_KEYDOWNメッセージ送信
というのはどうだろう?
試してみたら結果を教えて。
0620デフォルトの名無しさん
NGNGとして取得しそこにBMPのピクセル列を自分で描画、そして結果をDC
に描画、という感じかな。
0621デフォルトの名無しさん
NGNGでもその場合、複数の色の深度に対応した処理を書かなくちゃいけないよな?
8bit、16bit、24bitとか。
この3つで大丈夫かな?
0622デフォルトの名無しさん
NGNGそれともC++?
0623tantei
NGNG●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0624デフォルトの名無しさん
NGNGDirectX SDKの時はC++
0625デフォルトの名無しさん
NGNG遅くなりましてすいません。まずVIQからつまづいてました(笑
virtualized input queueって言うんですねぇ…無知無知…。
AttachThreadInputでくっつけた後、keybd_eventと
SetKeyboardStateの2つを試してみました。が…どうも上手く行きませんで(´Д⊂
しかしMSDN見る限りこれで出来そうですし、
619さんの仮説は間違ってないと思います。後は私のやり方が…。
いずれにせよ強力な手がかりを示唆いただき、本当にありがとうございました。感謝です。
>>616
とんでもない、こちらの質問が特殊なせいですので…。
0626デフォルトの名無しさん
NGNGんなこたない。
どんな色深度でも32bitで取得するのが一番楽。
0627デフォルトの名無しさん
NGNGこの階層メニューを破棄する場合、再帰的に全てのサブメニューを DestroyMenu() する必要があるのでしょうか。
それとも、サブメニューの解放は Windows が行ってくれるのでしょうか?
よろしくお願いします。
http://www.microsoft.com/japan/developer/library/jpuipf/_win32_destroymenu.htm
上のサイトになんて書いてあるか、読んできてくれたら、
解決方法を教えてあげよう。
0629デフォルトの名無しさん
NGNGCreateDIBSectionは?
0630デフォルトの名無しさん
NGNGCtrl+Sとかなら、なんかのショートカットなわけで、それなら
SPY++あたりでID調べて、WM_COMMAND直接送るのでは
いかんかね?
0631デフォルトの名無しさん
NGNGSTL使いたいから最近はC++
0632デフォルトの名無しさん
NGNGAttachThreadInput( targetTID, myTID, TRUE );
SetFocus( targetHwnd ); //重要
keybd_event( VK_CONTROL, 0, 0, 0 );
keybd_event( 'S', 0, 0, 0 );
keybd_event( 'S', 0, KEYEVENTF_KEYUP, 0 );
keybd_event( VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 );
とりあえず、これでできましたよ。
0633デフォルトの名無しさん
NGNGなるほどーその手がありましたね!
今回はちょっと汎用性を持たせなければなので(送り先が不定なんです)アレなのですが、
次回はその方法で行ってみようと思います。スマートで良いですね。
>>632
ぃやった!見事に送れました。
ふーむ、AttachThreadInputでくっつけるだけじゃダメなんですねぇ…。
後はうまくフォーカスを戻せれば…苦節数週間、おかげでようやく解決できそうです。
こんな質問にお答え頂き申し訳ないです。
お二方とも本当にありがとうございました。
0634デフォルトの名無しさん
NGNG大量のスレッド(1000〜10000個)を呼んでも、平気なのですか。
0635デフォルトの名無しさん
NGNG普通に考えて65536個ぐらいに限界があると思われ。
0636デフォルトの名無しさん
NGNGどっちにしろそれだけスレッド作ったら流石に重い。
0637デフォルトの名無しさん
NGNGAttachThreadInputはいらんだろ。
keybd_eventはフォーカスウィンドウにいくから。
0638デフォルトの名無しさん
NGNG生成できるスレッド数の最大値…ってのが、
レジストリのどっかにあったと思ったが。
0639デフォルトの名無しさん
NGNGAttachThreadInputしておかないとフォーカスの設定が出来ない
0640デフォルトの名無しさん
NGNGデフォルトでスタックは1MB
ユーザーが利用可能なアドレス空間は2GB
さあ計算してみよう。
もちろんスタックだけではなくヒープやモジュールにも
使われるから実際にはそれより少なくなる
0641デフォルトの名無しさん
NGNG激しく遅レスで、もういないと思うが、
Win32APIで簡単にというなら、
SetLayeredWindowAttributesで良いと思う。
0642デフォルトの名無しさん
NGNG>>597はクライアント領域にカラーキーかマスク付き転送したかったのでは?
リージョンを組み合わせるとかTransparentBltとか
0643デフォルトの名無しさん
NGNGツールバーではなく、プッシュボタンに実装する手段はありますか?
ヒントというのは例えばブラウザの閉じるボタンにカーソルを合わせたときに
出る「閉じる」のポップアップウィンドウのことです。
0644デフォルトの名無しさん
NGNGMFCかWTLのCToolTipCtrlクラスを使う。
Win32APIだけでやりたいなら
CToolTipCtrlのソースやMSDNの「ToolTip Controls」を見て勉強する。
0645643
NGNGありがとうございます。ソース見て勉強します。
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG/||
/∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
∧ ∧,〜
( (⌒ ̄ `ヽ _
\ \ `ー'"´, -'⌒ヽ
/∠_,ノ _/_
/( ノ ヽ、_/´ \
、( 'ノ( く `ヽ、 命を粗末にしてはならん!
/` \____>\___ノ
/ /__〉 `、__>
0649デフォルトの名無しさん
NGNG荒縄ハァハァ
0650デフォルトの名無しさん
NGNG||/
/||
/∧||∧ ∧ ∧,〜
( / ⌒ヽ ( (⌒ ̄ `ヽ _
| | | \ \ `ー'"´, -'⌒ヽ
∪ / ノ /∠_,ノ _/_
| || /( ノ ヽ、_/´ \
∪∪ 、( 'ノ( く `ヽ、 命を粗末にしてはならん!
/` \____>\___ノ
/ /__〉 `、__>
0651デフォルトの名無しさん
NGNG||
||
∧||∧
( / ⌒ヽ/ ∧ ∧,〜
| | / ( (⌒ ̄ `ヽ _
/ | \ \ `ー'"´, -'⌒ヽ
/ ∪ / ノ /∠_,ノ _/_
| || /( ノ ヽ、_/´ \
∪∪ 、( 'ノ( く `ヽ、 命を粗末にしてはならん!
/` \____>\___ノ
/ /__〉 `、__>
0652デフォルトの名無しさん
NGNG||
||
∧||∧ ∧ ∧,〜
( / ⌒ヽ// ( (⌒ ̄ `ヽ _
| | // | \ \ `ー'"´, -'⌒ヽ
∪ /// ノ /∠_,ノ _/_
| //|| /( ノ ヽ、_/´ \
//∪∪ 、( 'ノ( く `ヽ、 命を粗末にしてはならん!
/` \____>\___ノ
/ /__〉 `、__>
0653デフォルトの名無しさん
NGNGワロタ
0654デフォルトの名無しさん
NGNGWM_MOUSEWHEELメッセージを受け取ろうと激しく希望しているのですが
spy++で見る限りでは送られて来ないみたいです。
親ウィンドウには送られてきているみたいですが、それをウィンドウプロージャで
キャッチすることは出来ません。
GetMessage()では取得できないのでしょうか?
0655デフォルトの名無しさん
NGNGまずOSと〜環境を〜
spy++から察するに、とりあえずこんなの加えてプロシージャでキャッチしてみるよろし
#define WM_MOUSEWHEEL 0x020A
0656654
NGNGレスありがとうございます。
環境はVC++6.0(sp5)でWin2kでやってます。
windows.hのインクルードの前に
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
としています
#define WM_MOUSEWHEEL 0x020A
もやってみたのですが駄目でした。
子ウィンドウのスクロールバーはマウスホイールで操作可能なことから
メッセージを横取りされているように感じたのですが気のせいでしょうか…
0657デフォルトの名無しさん
NGNG失礼、なるほど子ウィンドウですか。
今、全く同じ環境で、適当にMDIアプリ作ってみましたが、
一応子ウィンドウ側のプロシージャで問題なくホイールメッセージを受け取れるようです。
うーん、何がまずいんでしょうねぇ…。
0658654
NGNGアプリ作っての確認までしていただき本当にありがとうございます。
今、別のPCで試してみたところ、正常にWM_MOUSEWHEELを受け取れました。
マウスが悪かったのか、メインPCで動作している何らかのアプリが邪魔をしているのかは分からないのですが
今度新しいマウスを買うとか、OSを入れなおしてみるとかしてみます。
検索するとWM_MOUSEWHEEL関係の悩みが結構引っかかるのですが
マウスホイールを主力として使うアプリケーションの開発は難しいのでしょうか…
0659デフォルトの名無しさん
NGNG何か、マウス関係のユーティリティが動いてないか?
いずれにせよ、ホイール無しのポインティングデバイスなんて山ほどある
んだから、頼りきるのはマズイな。
全ての操作をキーボードでもできるようにすればベストだ。
0660654
NGNG今、マウス購入時に付いてきたユーティリティーを削除したら
正常にWM_MOUSEWHEELを受け取ることが出来るようになりました。
的確なアドバイスをありがとうございました。
環境によって思うように動かないことがある、というのを痛感しました。
キーボードでの操作の実装もしっかりするように心がけなくてはいけませんね。
0661デフォルトの名無しさん
NGNGもしWin95まで考慮に入れているならzmouse.hもチェック
意外とWin95も生存しているようだし
0662デフォルトの名無しさん
NGNG>652
笑いまくった
いってる言葉と行動がともなってねー
0663デフォルトの名無しさん
NGNGマウスのドライバやユーティリティによってはいきなりWM_VSCROLLだったり・・・
ホイールが二つ以上あったりホイールじゃない何かだったりと・・・
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG返り値で判定できるでしょ。
0666デフォルトの名無しさん
NGNG知らねーなら答えるなよボケ
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNGお前が氏ね
0669デフォルトの名無しさん
NGNG668は日本語が不自由と見た。
0670デフォルトの名無しさん
NGNG||
∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪ 俺が変わりに死ぬよ
0671デフォルトの名無しさん
NGNG/||
/∧||∧
( / ⌒ヽ
| | |
∪ / ノ
| ||
∪∪
∧ ∧,〜
( (⌒ ̄ `ヽ _
\ \ `ー'"´, -'⌒ヽ
/∠_,ノ _/_
/( ノ ヽ、_/´ \
、( 'ノ( く `ヽ、 命を粗末にしてはならん!
/` \____>\___ノ
/ /__〉 `、__>
0672デフォルトの名無しさん
NGNGデキレースだな…
0673デフォルトの名無しさん
NGNGQueryPerformanceCounterが正常動作しないというバグがあったな
0674デフォルトの名無しさん
NGNG> QueryPerformanceCounter
COMの参照カウンタのことでしょうか?
(ネタじゃないので、マジレスきぼんぬ)
0675デフォルトの名無しさん
NGNG絶対違うと思います。
0676デフォルトの名無しさん
NGNG486では使えないけどPentium以降はサポートしてるんじゃないの?
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGWaitFotSingleObjectで待機している場合にシグナル状態になるイベントオブジェクトを
WaitForSingleObjectで待ってみてはどうだろうか(藁
0683デフォルトの名無しさん
NGNG待機を脱してるかもしれない。無意味。
そういうこと聞く人は同期について根本的に理解してなさそうだから
マルチスレッドのアプリケーション書かないでくれ
0684デフォルトの名無しさん
NGNGはい、さようなら。
0685デフォルトの名無しさん
NGNG同期オブジェクトって、利用方法についてある程度パターンがあるのよ。
それに沿って使ううちは問題ないけど、そこから外れるととたんに苦しくなる。
時間を無駄にしたくないなら、設計をそれに合わせたほうがいいよ。
>>684
さようなら。
0686デフォルトの名無しさん
NGNGで、具体的な方法は提示できないと。口だけって奴だな。
0687デフォルトの名無しさん
NGNGそいつはエスパーか占い師だ(w
で、>>681が単に待ちを中断する方法が欲しいのなら、
WaitForMultipleObjectsを使えばいいだけだよな。
何かを待つときはスレッド間通信用の口を残しておくのがベター。
Win32だと待機リソースに応じて様々な手段が用いられ、汎用の方法は
無いんで状況に応じて色々工夫は必要だろう。
0689デフォルトの名無しさん
NGNG判別できないでもない。
0690デフォルトの名無しさん
NGNG(同期がらみの解決方法として)安易にフラグを持ち出すと
>同期について根本的に理解してなさそうだから
って言われちゃうよん。
つか、イヤどころの話じゃないと思う。
0691デフォルトの名無しさん
NGNG復帰をatomicに実現できないから駄目。
というか「そういうことをしたくなる」こと自体が設計上の
問題を如実に示している。
という訳で元に戻る。
0692デフォルトの名無しさん
NGNG他のスレッドからはTryEnterCriticalSectionで調べるってのは駄目?
…いやまあ、俺も用途が思いつかないのには同意だ。
0693デフォルトの名無しさん
NGNG「任意の外部のプロセス/スレッドが待ち状態に陥ってるかどうかを知りたい」
んじゃないのかと思うんですが。
VisualC++のデバッガ上で動かしてるプログラムがブレークに3秒間
応答しないと、デバッガが「デッドロックしている可能性があります」云々
とメッセージを出しますが、それを「可能性」じゃなくて確定する
方法があると確かに便利かもしれませんよね。
デバッグ系のAPIでなんとかならないかな?
0694デフォルトの名無しさん
NGNGWin98系で使えないのでご注意...なんで使えねえんだよ...
まあMutexのほうが便利だが
> それを「可能性」じゃなくて確定する
SuspendThread→GetThreadContext→ResumeThread
して、プログラムカウンタの値が変化してないことを確かめる?
うーん、うそ臭い
0695デフォルトの名無しさん
NGNG対象プロセスの本体(exeファイル)がhModule[0]以外に入る事はあるのでしょうか?
0696デフォルトの名無しさん
NGNGSleep....
>691
SignalObjectAndWaitわ〜
0697デフォルトの名無しさん
NGNG>Windows 95/98:サポートされていません。
0698681
NGNG681が、スレッドの状態を知りたかったのは、
while( WaitForSingleObject( event, INFINITE ), true ) {
// なんか処理
}
とかでイベントを待ってるスレッドに
PulseEvent() で、イベントを伝えたかったからです。
[1] スレッドの状態が解れば、最悪Busyループを組むことでとにかくイベントは伝えられますよね。
[2] "スレッドが待機中になるまで待つ"システムコールなんかがあると最良かな。
で、
[1]のための方法が"クリティカルセッションで囲んで、TryEnterCr..."で、
[2]のための方法が、SingleObjectAndWait() な訳ですね。
そんで、[1]も[2]も、Win9xではサポートされない、と。
Win2000とかのときだけ、これらの方法を採って、
Win98とかのときは"WaitForSingleObject()の前後でフラグ or Mutex"でお茶を濁す、
って云うのが現実的かなぁ。
0699681
NGNG0700デフォルトの名無しさん
NGNGその必要がないように思えるんだけど・・・
> PulseEventでイベントを伝えようとすること自体が阿呆なのかな
Win32にはWindowMessageキューという大変便利なキューがありますよ。
0701デフォルトの名無しさん
NGNGつーかタイムアウト0のWaitForSingleObjectでOK。
>>694
OPTEX_TryEnterをどうぞ
http://www.microsoft.com/msj/archive/s202b.htm
NT 4.0でしか使えないと書いてるがそれはこの記事が1996年9月の
ものだからで、Win98以降ならInterlockedCompareExchangeが
サポートされてるから使えるはず。
CMPXCHGでInterlockedCompareExchangeを自作すれば
Win95でも使えるかも。
>>698
[1]はPulseEventする時点ではもう待機を脱しているかも
しれないから駄目。
> というか「そういうことをしたくなる」こと自体が設計上の
> 問題を如実に示している。
に尽きる。
[2]はPulseできないが、それでいいんならなんでSetEvent
では駄目なの?
0702デフォルトの名無しさん
NGNG「スレッドが待機中になるまで待つ」APIじゃないし。
そんなAPIがない理由は、戻ってきた次の瞬間には
もう相手のスレッドも待機を脱してるかもしれないから。
そんなことをしたくなること自体が(ry
ついでにスペルくらいちゃんと読め。SingleObectAndWaitではない。
やっぱりお前はマルチスレッドのアプリを書くべきじゃないと思うんだが。
0703デフォルトの名無しさん
NGNG> Note This function is unreliable and should not be used.
> It exists mainly for backward compatibility. For more
> information, see Remarks.
0704702
NGNGSignalObjectAndWait
0705デフォルトの名無しさん
NGNG寂れてるけど。
マルチスレッドプログラミング相談室 その2
http://pc2.2ch.net/test/read.cgi/tech/1037636153/l50
0706デフォルトの名無しさん
NGNGPulseEventがだめぽな場合の具体例。
http://www.microsoft.com/msj/0997/win320997.htm
デバッグAPIはKernelAPCを使って実現されてる。
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG普通にloadLibraryすれば?
0709デフォルトの名無しさん
NGNG32ビットアプリから、という趣旨では?
「Win32」 API質問箱だし。
2000やXPではログオフするだけなのにいまさらそんな方法
追求してどうするねん、という気もするが
0710デフォルトの名無しさん
NGNG>32ビットアプリから、という趣旨では?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/loadlibrary.asp
だからそう言う趣旨で答えてる。
0711デフォルトの名無しさん
NGNGExitWindowsExecは16bitのUSRE.EXEにあるから
サンクを使う必要があるのでは?
0712デフォルトの名無しさん
NGNGExitWindowsExecならQT_Thunkでどうにかなるかも
0713デフォルトの名無しさん
NGNG検索キーワードはこのあたりでよい?
0714デフォルトの名無しさん
NGNG同意。
0715デフォルトの名無しさん
NGNGQT_Thunkでぐぐったらこんなのが
0716デフォルトの名無しさん
NGNGあんまりよくない。
マルチスレッドとか同期とかの話は長引いたり荒れたりするから隔離しないと。
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGって回答になるねん。
確かにWin16側の関数もLoadLibraryって名前だけどサンク経由で
呼ぶのは「普通」じゃないと思う
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNGヘッダがないな…
まあExitWindowsExecを呼び出す程度なら
自分で書き下せばいいけど
0721デフォルトの名無しさん
NGNGWindows2000だと、256色のアイコンが16色になってしまうのですが、
これってなぜですか?
XPの写真を見ると256色以上のアイコンが綺麗に描かれているのは、
OSの違いのせいでしょうか?
それともプログラミングの問題ですか?
0722デフォルトの名無しさん
NGNG詳しくはわからなが、漏れの XP ではこんなコードで 256 色になってるので試してみてくれ。
NotifyIconData.hIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 16, 16, LR_SHARED);
0723デフォルトの名無しさん
NGNG2000以前のWindowsの仕様でタスクトレイのアイコンは16色にしか
できません。Me以降なら256色にできます。
2000以前で256色にする裏技もあるらしいけどやり方は不明。すまん。
0724デフォルトの名無しさん
NGNG試してみましたが、私の方では駄目でした。
XP、もしくは正常なプログラミング方法では、やはりそういうコードで
256色になるのですね。
0726デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNG検索したのですが、MFCでのやり方しか見つからないです。
0729デフォルトの名無しさん
NGNGそれなら、TBSTYLE_TOOLTIPSを指定して、WM_NOTFYのTTN_NEEDTEXTに反応してやる。
0731デフォルトの名無しさん
NGNG#define EXPORT extern "C" __declspec(dllexport)
EXPORT void CALLBACK ITEMWEAPON(void);
をインクルードしたソースファイルを
Borland C++ CompilerでDLLにするときに
「DLL.h 2:宣言が正しく終了していない」がでます。
またソース部の
EXPORT void CALLBACK ITEMWEAPON()
{ //いろいろかいてある
}
でもEXPORT void CALLBACK ITEMWEAPON()の
部分で「宣言が正しく終了していない」が
なんでなんですが
0732デフォルトの名無しさん
NGNGおお。レジストリを使うのか。
サンクス。
0733731
NGNGcではできなくc++でできました。
意味ねぇー
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNGリソースのDLLを作る時の
コマンドラインオプションと
コンパイラを教えてくれませんか
調べてもわからないので
どうしようもないです。教えてください
0736デフォルトの名無しさん
NGNGじゃなかったっけか?
0737デフォルトの名無しさん
NGNGつーかどこ調べたんだよ。
0738デフォルトの名無しさん
NGNG調べてないと思われると叩かれるから
おまじないのように書いてるだけで
実際に調べてるわけないじゃん
0739735
NGNGヘルプファイルとMSNサーチで
ただヘルプファイルのbrc32の
コマンドラインオプションには
DLLを作る場合使うというものは書いてなく
MSNではBorlandQ&Aがまともなほうで
他のページはBorland c++ compiler 5.5は
無料でいいですよーーーというページばかりで
300近くのサイトに入りまくるのもバカらしくなり
ここに書き込みました
BorlandQ&Aについては前にリソースの
コンパイルで調べようとしたら
BCC32の簡単なコマンドラインオプション以外は
ヘルプファイルを見ろって感じだったんで
はじめからアテにしてませんでした。
ちなみにISDNの3時間/月なんで
時間かけれるわけなんです
0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNGDLLを作る場合使うというものは書いてなくMSNではBorlandQ&Aがまともなほうで他のページはBorland c++ compiler 5.5は
無料でいいですよーーーというページばかりで300近くのサイトに入りまくるのもバカらしくなりここに書き込みました
BorlandQ&Aについては前にリソースのコンパイルで調べようとしたらBCC32の簡単なコマンドラインオプション以外は
ヘルプファイルを見ろって感じだったんではじめからアテにしてませんでした。ちなみにISDNの3時間/月なんで
時間かけれるわけなんです
すげぇ、展開すると日本語の文章として崩壊する。
0742735
NGNGで最後は「ないんです」です。意味違ってます。
Borland c++ でリソースのDLLの話は解決しました。
ヘルプファイルには.EXEと書いてあるくせに
.DLLでも全く問題ありませんでした。
でもさすがに一切のコードなしの
Cソースをコンパイルしたのはびっくりしました。
コードなしのCソースをコンパイルしDLL作成→
rcをコンパイル&リンク でバッチリでした。
brc32じゃ と書いた736さんありがとうございました。
けどボーランドもテキトウだなぁぁ。
(。を意識しました)
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGおまえの「ちゃんと調べた」の方がよっぽどテキ(ry
0745735
NGNG英はまあまあ。
理・数は完璧?
な純理系ですから。
よく使う言葉は「多分・・」です。
(WINAPI関係ないですね。けど日本人として○○○?って感じです)
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNG無職ですよね。
0748735and745
NGNG高校受験終わったんで
ゆっくりとプログラミング
やってまーーす。
中3です(マジ)
田舎だし、他のやつ受験終わってないし、
家で遊んでます(明後日公立試験)。
0749デフォルトの名無しさん
NGNG読点を覚えなさい。多分堕ちてます。
0750デフォルトの名無しさん
NGNGプログラミングは
理系より文系
0751デフォルトの名無しさん
NGNG始めても恥ずかしくない年頃なんですね。
0752デフォルトの名無しさん
NGNG748じゃないが、
Σ(´Д`ズガーン
0753デフォルトの名無しさん
NGNGはあ、受験終わったんですか?
俺も中3だけど受験は3年前におわった。
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG! i iノノリ)) 〉
i l l.´ヮ`ノリ <先生!こんなのがありました!
l く/_只ヽ
| ̄ ̄ ̄ ̄ ̄|
http://saitama.gasuki.com/hiroyuki/
0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNG0758735and745
NGNGということは一貫教育?
いいですね。
こっちは試験一週間前、
家でA.M.3時まで勉強。
幸い社会の試験が無い学校で、
英語ばっかやって受かりました。
ちなみに3年前は受験なし。
田舎だからみんな同じ 市立学校。
WINAPI関係ないのに・・・もうやめます。
0759デフォルトの名無しさん
NGNGもう帰ってこなくていいよ。
0760デフォルトの名無しさん
NGNG雑談は、他でやってくれ。
0761735and745
NGNG低学歴さん必死ですね。
0762名無し@沢村
NGNGヌヒよ、偽物は消えろ
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGMoveWindowでリサイズしようとしても出来ませんでした。
タスクバーのスタートボタンなどはMoveWindowsでウィンドウサイズを
変更できるんです。
なぜタスクバーだけうまくいかないんでしょうか・・・。
どなたかご教授いただけないでしょうか。
HWND hTaskbar = FindWindowEx(NULL, NULL, "Shell_TrayWnd", "");
MoveWindow(hTaskbar, x, y, cx, cy, TRUE);
0766デフォルトの名無しさん
NGNGWM_MOVEに対してデフォルトでない処理をしていることは容易に想像できる。
0767デフォルトの名無しさん
NGNG「アプリケーションを指定して開く?」ダイアログに出てくる
アプリケーションの一覧を取得するにはどうすればいいですか??
要は、インストールされているアプリを列挙しないのです。
ただし、アプリの追加と削除一覧ではありません。
(↑サービスパックとかも出てきちゃうので)
APIは無いのかな〜。
レジストリかな〜。
0768デフォルトの名無しさん
NGNG0769sage
NGNGそうなんですけど、
どこを見ればいいんですかね??
レジストリの拡張子を全部見ていったりしたんですけど、
どうも表示されるものが違うんですよね。
0770デフォルトの名無しさん
NGNGWindowsってアプリケーションを探すのに
拡張子 → ファイルタイプ → アプリケーション
ってなってるから拡張子から直接はムリ。
……という話をどこかで読んだ。
ガゼネタかもしれないけれど。
0771デフォルトの名無しさん
NGNG実際そうだぞ。
900個の拡張子に同じ設定が900個ってのはアホらしいわけで。
0772デフォルトの名無しさん
NGNGにある EXE と最近 「アプリケーションを指定して開く」 で指定された EXE
が出てこないか?
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNGHKEY_CLASSES_ROOT\Applications
以下だと思ったけど。
NoOpenWithって書いてあったり、実体のEXEなどが存在しなかったら表示されない。
かなーりうろ覚え。
0775デフォルトの名無しさん
NGNGどうやれば出来ますか?
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGそれはめんどくさすぎ。
チェックマークのビットマップ変えるとかでは駄目か?
0778デフォルトの名無しさん
NGNGから pc2.2ch.net、/software というふうにサーバ名などを抜き出すAPIはあるでしょうか?
0779デフォルトの名無しさん
NGNGInternetCrackUrl
0780デフォルトの名無しさん
NGNGありがとう
0782デフォルトの名無しさん
NGNGメニュー項目ごとにビットマップを変えたりはできないから
あまり実用的じゃないと思うぞ
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNGSPY++で見てもメッセージが流れていないようです。
どういう条件の時にWM_PARENTNOTIFYが流れますか?
開発はダイアログベースです。
0785デフォルトの名無しさん
NGNGThe WM_PARENTNOTIFY message is sent to the parent of a child window when the child window is created or
destroyed, or when the user clicks a mouse button while the cursor is over the child window. When the child
window is being created, the system sends WM_PARENTNOTIFY just before the CreateWindow or CreateWindowEx
function that creates the window returns. When the child window is being destroyed, the system sends the message
before any processing to destroy the window takes place.
0786デフォルトの名無しさん
NGNGそのはずなんですが、実際にはそのようになっていないので
何か特別な指定が必要なのかなぁと思って質問しました。
0787デフォルトの名無しさん
NGNGAll child windows, except those that have the WS_EX_NOPARENTNOTIFY extended window style,
send this message to their parent windows. By default, child windows in a dialog box have the
WS_EX_NOPARENTNOTIFY style, unless the CreateWindowEx function is called to create the child
window without this style.
0788デフォルトの名無しさん
NGNGHKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
に実行したいプログラムのファイル名を書きますが、
同様に、終了時にプログラムを実行する方法はないですか。
0789デフォルトの名無しさん
NGNG起動時にコソーリ立ち上げておいて、
WM_QUERYENDSESSIONをワクワクしながら待つ。
0790デフォルトの名無しさん
NGNGワロタw
0791デフォルトの名無しさん
NGNGリソース内のファイルを使うにはどうすればいいのでしょうか?
ビットマップは、LoadBitmapやMAKEINTRESOURCEを使って表示できるのですが。
初歩的で申し訳ないです。VC++使ってます。
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNG結局のところ、ダイアログベースでコントロールにWM_PARENTNOTIFYを送信させるにはどうすればよいのでしょう。
WM_PARENTNOTIFYを送信させたい全コントロールに対してSetWindowLongするしかないのでしょうか?
この方法だとWM_CREATEを送信して欲しい場合に対応できませんが。
0794デフォルトの名無しさん
NGNG横からですが、>>787の通りですよ。
WS_EX_NOPARENTNOTIFYを指定せずに作ったコントロールからは、
きちんとWM_PARENTNOTIFYが送信されますよん。
0795デフォルトの名無しさん
NGNG10秒間操作不能になります
case WM_LBUTTONDOWN
time_t t;
t=time(NULL);
while(time(NULL) < t+10)
{
//繰り返したい処理
}
return 0;
どうすればよいでしょうか
0796デフォルトの名無しさん
NGNG{
//繰り返したい処理
他のお仕事もしてきてね
}
0797デフォルトの名無しさん
NGNG0798795
NGNGいろいろと出てきて ラッキー♪
while(time(NULL) < t+10)
{
MSG msg;
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//処理
}
これで動きました。 感謝!
0799デフォルトの名無しさん
NGNGそのループ中にプログラムが終了したらあぽーんじゃねえ?
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNGif(msg.message == WM_QUIT){
PostQuitMessage(0);
return 0;
}
これをTranslateMessageの前に入れないと
GetMessageがFALSE返さない悪感
0802デフォルトの名無しさん
NGNG親ウィンドウへの操作を禁止する
0803デフォルトの名無しさん
NGNGえ〜と、ですから
> By default, child windows in a dialog box have the WS_EX_NOPARENTNOTIFY style
ダイアログのコントロールはデフォルトでWS_EX_NOPARENTNOTIFYが指定されているんですよね?
「WS_EX_NOPARENTNOTIFYを指定せずに作ったコントロールからはWM_PARENTNOTIFYが送信される。
しかし、ダイアログのコントロールはデフォルトでWS_EX_NOPARENTNOTIFYが指定されているのでWM_PARENTNOTIFYが送信されない。
では、ダイアログのコントロールにWM_PARENTNOTIFYを送信させる
(WS_EX_NOPARENTNOTIFYが指定されていないコントロールを作る)
にはどうすればよいのだろう」
というのが困っている点です。
英語が苦手なので、もし間違っていたら訂正お願いします。
0804デフォルトの名無しさん
NGNGSetWindowLing(GWL_EXSTYLEを使って
WS_EX_NOPARENTNOTIFYを解除して回ったらよろしかろう。
0805既出?
NGNGリファレンス的に使えるものがいいのですが・・・・
皆さんは何を使ってますか?
0806デフォルトの名無しさん
NGNGMSDN(English)
最近日本語版がgoogleに引っかからなくて鬱。
でも、よく考えたら昔英語版のリファレンス使ってたじゃんとか思って読んだら読めてウマー
0807デフォルトの名無しさん
NGNGPlatformSDK Documentation
0808CreateFileで(・ω・` )ショボーン
NGNG作っているのですが、どうも書込みが遅くて困っています。
書込み対象のHDDは、RAID0(ストライピング)で構成されています。
HDBENCHなどのベンチマークソフトでは軽く80MB/s位はたたきだすのですが、
自分のプログラムでは30MB/sがいいとこです。
(※40MB/sくらいまでは帯域あげたいのですが。)
CreateFile のオプションもいろいろと試してみたのですが、
大きな変化はないようでした。CreateFileは以下のようになっています。
m_hFile = CreateFile( szFileName, GENERIC_WRITE | GENERIC_READ, // 書き込みモード
FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
FILE_FLAG_WRITE_THROUGH | FILE_FLAG_SEQUENTIAL_SCAN | FILE_FLAG_NO_BUFFERING, NULL );
以後
WriteFile(m_hFile, foo, size, &m_dwWrite, NULL);
で307200バイトずつ書き込んでいます。
何かいい方法はありませんでしょうか?
0809デフォルトの名無しさん
NGNGん? 速さを求めてるんだったよな
0810CreateFileで(・ω・` )ショボーン
NGNGFILE_FLAG_WRITE_THROUGH はあってもなくても
結果はそれほど変わりませんでした。
(30MB/sくらいで推移。ちなみにパフォーマンスモニタで計測してます。)
なんでだろ〜?
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGピーク時で書き込み18.3MB/sだったけど。
0814デフォルトの名無しさん
NGNGCreateProcessをするexeをリモート側において実験してみたのですが、
起動はすれど、画面に表示されませんでした。
(タスクマネージャ上には存在する)
その後STARTUPINFO構造体のパラメータをいじってnotepad等をリモート
側で起動させることに成功したのですが、TELNETセッションを切ると
当然起動したnotepadは終了してしまいます。
そこで質問ですが、このようなときにリモートで起動したプロセスが残ったままに
なるような仕組みってのはどうやればいいのかわかりません。
ご回答おねがいします。
0815デフォルトの名無しさん
NGNG0816CreateFileで(・ω・` )ショボーン
NGNG>>812
>>813
ありがとうございます。
GENERIC_READを外すのは試してみましたが、
ほとんど変わりありませんでした。
んで、書き込んだ後すぐ読み出すのでGENERIC_READも渡してます。
やはり、書込みサイズですかね。
試してみます。
0817デフォルトの名無しさん
NGNGスケジューラサービスに起動してもらう。
0818デフォルトの名無しさん
NGNGpcap使わないと無理なのでしょうか?
ioctlに似たioctlsoketは大した事できないし・・・
0819デフォルトの名無しさん
NGNGGetIfTable
0820デフォルトの名無しさん
NGNG同時に使うことはできませんか?
できるならやり方を教えてください。お願いします。
0821デフォルトの名無しさん
NGNGORで繋ぐか足し算するか
コンパイラによって処置方法は変わるができる
0822デフォルトの名無しさん
NGNGありがとうございます。あなたのヒントのおかげでできました。
結局「MB_YESNO + MB_ICONQUESTION」としたらうまくいきました。
ありがとうございました。
0823デフォルトの名無しさん
NGNGORってビットORのことでしょ(^_^;)
MB_YESNO | MB_ICONQUESTIONでしょ(^_^;)
0824823
NGNG0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGキャリーの起こるような値を連結しろとは言われないだろうけれど。
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGOR演算子が記号じゃない言語の場合は
+で区切ったほうが視覚的に区切りが見やすいとか
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG>VBならいきなし加算後の数字でブチ込むのも可能だしな
C言語はリテラルが書けません。そう言いたい。
0831デフォルトの名無しさん
NGNGという風に指定して、"test"はhoge.exeのどこに格納されてるのでしょう?
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
これのlpCmdLineでいいのでしょうか?
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGまずやってみれ
0834132
NGNGIf lpFile specifies a document file, lpParameters should be NULL.
0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG意味わかんない。
「加算後の数字でブチ込む」 のは API が呼べる言語ならどれでも可能だと思うが。
0837デフォルトの名無しさん
NGNGそれ以前に定数の替わりにリテラルが使えない言語なんてあるのか?
0838831
NGNG0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNGだめだこりゃ
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNGif(lpCmdLine=="test"){
iTemp=MessageBox(NULL,"","",MB_OK);
}
とやるとメッセージボックスがでません。
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNGC または C++ を 1 から勉強し直してこい。
あんたが C/C++ でアプリケーションを書くのはまだ無理だ。
0845デフォルトの名無しさん
NGNG>if(lpCmdLine=="test"){
許容されるのね・・・
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG許容だけはされるよ。
おそらく真にはならないというだけで。
0848デフォルトの名無しさん
NGNG文法上は正しいw
たとえば下のようにすればメッセージボックスが表示される。
(VC++6.0SP5 @ Win2000 では表示された。)
コンパイラによってちがうかもしれんけど。
char *pTest = "test";
if( pTest == "test" )
{
::AfxMessageBox("キタ━━━━━━\(゚∀゚)/━━━━━━ !!!!!");
}
0849デフォルトの名無しさん
NGNGそうじゃない場合の結果は定義されない。(要するにその結果は処理系依存)
だからコンパイルエラーにはならない。
0850sage
NGNGどのように実現すれば良いのでしょうか?
要は、自作タスクバーみたいのを作りたいのであります。
EnumWindowだの何だのやっても、
エクスプローラーはプロセスが1つでもWindowが沢山あったり、
ExcelはMDIでもちょっと不思議な動きだったり・・・
VisualStudioはHWNDが2つあったり・・・
何かコツでもあるのでしょうか?
0851デフォルトの名無しさん
NGNG状況はJavaの==の両辺がオブジェクトの時と一緒な訳か。なるほど。
0852デフォルトの名無しさん
NGNGせめてどのへんかを・・・。
lpCmdLineのlpはロングポインタとか??
0853デフォルトの名無しさん
NGNGワラタ
0854デフォルトの名無しさん
NGNGfor (T* p = listtop; p != NULL; p = p->next) {
if (p == p_found) { return p; }
~~~
}
0855デフォルトの名無しさん
NGNGん?じゃあ↓の結果は処理系依存?
int *p;
if(p==p) printf("同じ\n");
0856デフォルトの名無しさん
NGNG確か文字列定数はFlyWeightっぽくなるんだよね。
0857from msdn
NGNG同じ型のオブジェクトを指す 2 つのポインタを比較すると、その結果は、それぞれのポインタが指しているオブジェクトが
プログラムのアドレス空間内に占める位置で決まります。ポインタは、0 に評価される定数式や、void * 型のポインタと
も比較できます。void * 型のポインタと比較されるポインタは、比較される前に暗黙的に void * 型に変換されます。
型の異なる 2 つのポインタを比較できるのは、以下の場合に限られます。
一方が他方から派生したクラス型の場合。
少なくとも一方のポインタが void * 型に明示的に変換 (キャスト) されている場合。他方のポインタは暗黙的に void * 型
に変換されて比較されます。
同じオブジェクトを指す同じ型の 2 つのポインタを比較すると、必ず、等しいと評価されます。オブジェクトの非静的メンバ
を指す 2 つのポインタを比較するときは、以下の規則に従います。
クラス型が共用体ではなく、2 つのメンバが access-specifier (public、protected、private) によって分離されていないとき、
後方で宣言されているメンバを指すポインタは、先に宣言されているメンバを指すポインタより大きいと評価されます。access-specifier
については、「アクセス指定子」の「構文」を参照してください。
2 つのメンバが access-specifier によって分離されているときの結果は未定義です。
クラス型が共用体のときは、この共用体の異なるデータ メンバへのポインタは等しいと評価されます。
2 つのポインタが、同じ配列内の要素、または配列の最後の要素の 1 つ先の要素を指しているときは、大きい方の添字
を持つオブジェクトを指しているポインタが大きいと評価されます。ポインタ間の比較が有効になるのは、ポインタが同じ配
列内のオブジェクト、または配列の最後の要素の 1 つ先の位置を参照しているときに限られます。
0858854
NGNGポインタの比較は定義されないの?
0859デフォルトの名無しさん
NGNGstd::string cmdline(lpCmdLine);
if (cmdline == "test")
{
MessageBox(NULL, "キタ━━━━━━\(゚∀゚)/━━━━━━ !!!!!", "", MB_OK);
}
というようなことはできるわけだが。
0860デフォルトの名無しさん
NGNG演算子オーバーロード様々だな。
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG比較の話だろ
0865デフォルトの名無しさん
NGNG具体的にはどんな点で違いますか?
0866デフォルトの名無しさん
NGNG>>861
0867デフォルトの名無しさん
NGNG0868865
NGNG0869867
NGNG0870デフォルトの名無しさん
NGNG>>791
APIはC言語から使うことを前提に設計されている。
0871デフォルトの名無しさん
NGNG両方のポインタが同じ配列の要素を指してる限りはNULLじゃなくても
定義される。
でもここはAPIスレだから正解は>>857かも
0872ちと早いが、まとめたので貼ってみる
NGNG01 http://pc.2ch.net/tech/kako/991/991576947.html
02 http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
03 http://pc.2ch.net/tech/kako/1017/10170/1017072275.html
04 http://pc.2ch.net/tech/kako/1023/10233/1023361418.html
05 http://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
06 http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
07 http://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
08 http://pc2.2ch.net/tech/kako/1040/10409/1040964626.html
09 http://pc2.2ch.net/tech/kako/1044/10449/1044929160.html
0873仕様書無しさん
NGNGこれも追加。
NullPointerExceptionを「ぬるぽ」と呼ぶスレ3
http://pc.2ch.net/test/read.cgi/prog/1045323654/l50
4はこちらの方が良いようですね。
>>873
スレ違いです
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNGしくじるとヌッ殺される罠
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGまた CoUninitialize を呼び出さないとどのような不具合が出るのでしょうか?
0880デフォルトの名無しさん
NGNG本読んでください
0881デフォルトの名無しさん
NGNG俺も知らないけど、その辺はCOMっていう、一大システムが背後にあるので、
簡単には答えられないんじゃないかな。
ことがあります。色々調べたら 6分通信がされなかったらポインタを無効にする仕様だ
そうですが、うまい回避策(workaround)を知っていたら教えて下さい。
ちなみに QI したポインタを全部覚えておいて、レジュームメッセージを受けとって、
Release() -> QI しても、先にポインタを使われることがあって、だめみたい。
(´・ω・`)
0883デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/981823340/
ごめん、スレ違いだったみたいね。
そっちで聞いてみます。
0885デフォルトの名無しさん
NGNGコンパイラ以前に、最適化オプションで変わったりするよ。
>>849
えらそーに、間違ったこと書くなよ。
0886↑典型例(´∀`)
NGNG0887デフォルトの名無しさん
NGNG849も痛いが、それを突っ込める香具師の少なさにも驚きだな
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNG結局お前等は何もわかってないわけだ。
0891デフォルトの名無しさん
NGNGOSが何語のモデルかを検出するAPIはありますか?
0892デフォルトの名無しさん
NGNGuname
0893デフォルトの名無しさん
NGNGGetThreadLocale
GetSystemDefaultLCID
GetUserDefaultLCID
このへんから辿ってみてちょ
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNGノートPC(Celeron1Ghz・240MBラム・S3 16MB twister)でやるとFPSが1ぐらいになります。
使っているライブラリはwinmm.libとDirectX9系統なんですが。
これは純粋に性能の差ですか?それともXPで使うと重くなるAPIがあるのでしょうか?
0896デフォルトの名無しさん
NGNGつーか、DirectX スレとかに行った方がよろしかろ。
0897デフォルトの名無しさん
NGNG871で述べられ済みなわけだが
過去ログすら読めませんか
0898デフォルトの名無しさん
NGNG意味不明。お前さんのWindowsが英語版かどうか
何を持って「ひとまとまり」に判定しろと?
0899デフォルトの名無しさん
NGNGスマソ
D3Dのサンプル実行してみたら同じく1FPSだったからやっぱアクセラレーションだった。
0900デフォルトの名無しさん
NGNG900!
ブラウザなどでは、日本語を ja と表現したりするでしょ?
0901デフォルトの名無しさん
NGNGWin98,Win2000,XPとOSが変わっても対応したいのですが。
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGってなったかも知れない。
0904デフォルトの名無しさん
NGNGここから適当なソース取ってきて見るのが早い。
http://www.nifty.com/download/win/hardware/cpu/
0905デフォルトの名無しさん
NGNGクルーソーとかマイナーなやつは良く分からん。
0906デフォルトの名無しさん
NGNGZ80とか?
0907デフォルトの名無しさん
NGNG上位10ぐらいを落としてみましたが全部ソース非公開でした。
いい加減な紹介してくれてあるがとよ、ゴルァ
0908デフォルトの名無しさん
NGNGぷっ、>>871 が正しいと思ってるんだ。
関係演算子と等値演算子の区別がついてないんだな。
0909デフォルトの名無しさん
NGNG下の方を良く見ろうんこ
0910デフォルトの名無しさん
NGNG意地悪すぎだぞ。
0911デフォルトの名無しさん
NGNGCPUの情報(MMX命令,SIMD命令,Family,Model,Step)を取得するツール VC++6用ソース付
0912デフォルトの名無しさん
NGNGhttp://www.vector.co.jp/soft/win95/hardware/se115094.html
これね。
やっぱりアセンブラを使わないと取得できないのかぁ・・・。
無駄骨おったけどサンクス。
0913デフォルトの名無しさん
NGNGCPUの種類 クロック数 取得
の検索キーでトップに出てきたぞ
http://www.google.co.jp/search?q=CPU%82%CC%8E%ED%97%DE+%83N%83%8D%83b%83N%90%94+%8E%E6%93%BE&ie=Shift_JIS&hl=ja&lr=
0914デフォルトの名無しさん
NGNGなんなんですか?今更
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNGとかで検索してました。
細かい検索用語の違いは難しいれす。
0917デフォルトの名無しさん
NGNG文字だけのボタンをつけようとすると、
┌─────┬─────┬───
│ .│ .│
│字字字字字│字字字字字│
└─────┴─────┴───
こんな感じで空白が出来てしまうのです。
何かスタイルが足りない、とか教えてください。
0918デフォルトの名無しさん
NGNGMSのキーボードについてくるユーティリティの様にそれらのキーの機能をカスタマイズ
するツールを書こうとしています。
上のようなツールを入れなくてもWindows2000ではデフォルトでホームに戻る/ボリュームなど
の機能が有効になっています。
そこで質問なのですが、マルチメディアキーを押したときWindowsがデフォルトで行う処理
を抑止する方法って何か無いでしょうか?
WH_KEYBOARD及びWH_GETMESSAGEでグローバルフックを仕掛け、CallNexthookを
呼ばないと言う方法ではデフォルト処理が入ってしまいました(aなど普通のキーはちゃ
んと入力されなくなりました。)
0919デフォルトの名無しさん
NGNGhttp://fukunm12.nucl.kyushu-u.ac.jp/~akasaka/memo/delphi/cpuclock.html
0920デフォルトの名無しさん
NGNGBIOSで出てくる結果を得たい場合ってどうするんだろ
603.81MHzじゃなくて、600MHz
1396.04MHzじゃなくて、1400MHzと。
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNGどこで四捨五入するのかちょっと考えてみるだけで問題点が分かるよ。
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG>>919の関数をPentium3-M 1.13GHzで試したら
1128MHz 2秒ループ
1057MHz 1秒
270MHz 5秒
とばらばらになった。なんや2秒がいいのかな。よくわからん。
最後の270MHzはひどいな。
0926925
NGNG>>919でなくそこで紹介されている
http://www.dinop.com/vc/getcpufreq.html
のソースです。
SpeedStep対応のCPUとかだと安定しないのかも。
0927デフォルトの名無しさん
NGNG> 関係演算子と等値演算子の区別がついてないんだな。
ハァ? >>849のどこに等値演算子と書いてるんだ
そもそもポインタが比較できるかどうかが問題なのに
そんな些細な揚げ足取りしかできないんだね
ちなみに等値演算子の場合
> 等値演算子では、同じ型のメンバへのポインタを比較できます。
> このような比較では、「メンバへのポインタの変換」で解説した
> メンバへのポインタの変換が行われますメンバへのポインタは、
> 0 に評価される定数式とも比較できます。
0928デフォルトの名無しさん
NGNGAPIありますか?
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG> ハァ? >>849のどこに等値演算子と書いてるんだ
別に書いてないけど、>>849 は「等値演算子」だろうが「比較演算子」だろうが、間違ってることには変わりない。
で、>>871 の方は、「ポインタに対する比較演算」について言っているなら、内容はおかしくない。
でも、>>842 からの流れで「ポインタの比較」と言うなら、「等値演算子」について言ってると考えるのが普通。
それを いきなり「比較演算」について語ってるから、おかしいと指摘しただけ。
0931デフォルトの名無しさん
NGNGDelayedDeleteLockedFile
0932929
NGNG0933デフォルトの名無しさん
NGNG>>842 からの流れで「ポインタの比較」と言うなら、「等値演算子」について言ってると考えるのが普通。
……ぜんぜん普通じゃないと思うが。
普通「ポインタの比較」と言えば「比較演算」のこと。
しかも、わざわざ御丁寧に「関係演算子によるポインタの比較」とまで書かれている。
「等値演算子」に限った話はされていないよ。
0934デフォルトの名無しさん
NGNGgoogleかけても引っかかりません??
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGMSDNの検索でも出てこない
>>935
残念ながら自分の削除には使えない。
NT4あたりではできたらしいが9xや2000ではだめ。
0937デフォルトの名無しさん
NGNG左ボタンでD&Dされたのか、それとも右ボタンだったのかを
知りたいのですが、どうすればいいのでしょうか?
0938デフォルトの名無しさん
NGNG必死になってるのは、わかるけど >>842 からのプログラム中に一回でも比較演算子が出てきてねーだろ。
まあ、「「等値演算子」に限った話はされていないよ。 」という主張に沿って、>>857, >>871 は正しいと認めるのは吝かじゃねーけど、>>849 が間違ってるのは明白だろ。
0939デフォルトの名無しさん
NGNGWM_DROPFILESではできない。
OLE D&Dならできる。
0940931
NGNGえっ? 無いですか? とりあえずMSDNから一部コピペ
BOOL DelayedDeleteLockedFile (
LPCTSTR lpFileName // ファイル名
);
対応情報
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winbase.h 内で宣言、Windows.h をインクルード
インポートライブラリ:Kernel32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装
0941933
NGNG> >>857, >>871 は正しいと認めるのは吝かじゃねーけど、>>849 が間違ってるのは明白だろ。
はぁ? 何を今更。最初からそういう話をしてるんでしょうが。
849 が間違っているから、849 に対して 857, 871 のポストがある。
そして、それが分かっていないようだから 897 で
> 871で述べられ済みなわけだが
> 過去ログすら読めませんか
となるわけだよ。
>>>842 からのプログラム中に一回でも比較演算子が出てきてねーだろ。
投稿の大部分は自然言語だ、プログラミング言語ばかりでなく自然言語も読め。
「比較」とか「ポインタの比較」と言っている投稿は多数あるが
逆に「等値」は 908 になるまで一度も出てこないよ。
0942デフォルトの名無しさん
NGNG良ければurl出してもらえませんか?
もしくは戻り値の解説も張って頂けると嬉しいのですが。
0943デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNG送られるようにするにはどうすれば良いでしょうか?普通のクリックでは
ちゃんと送られて来ています。
0947931
NGNGネットには見つからなかったのでMSDNのアドレスをどうぞ。
インストール先(C:\MSDNは)環境に合わせて変更する必要がありそう。
mk:@MSITStore:C:\MSDN\MSDN\jpwinpf.chm::/html/_win32_delayeddeletelockedfile.htm
戻り値
関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、GetLastError 関数を使います。
0950デフォルトの名無しさん
NGNGそのプロシージャーをサブクラス化。
0951デフォルトの名無しさん
NGNG作ってるんですが、32KB制限の対策法って
どういうのがあるんですか?
0952デフォルトの名無しさん
NGNG私は220万円の借金をわずか3ヶ月で完済しちゃいました〜!
借金のある人、今の生活よりグレードアップさせたい人、
パートに出られない主婦の人、失業中で今すぐ収入の欲しい人などに
かなりおすすめです!
他の人と同じじゃ稼げません。大金を簡単に稼ぐ方法教えちゃいます!!
http://chu3.k-server.org
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG32KBを超えたら EN_MAXTEXT を捕捉してエラーメッセージを
表示するとかそういう話なんかな。
0955951
NGNGもっと巨大なテキストを扱えるように
したいんで、EM_LIMITTEXTをさっそく
試してみます。
0956デフォルトの名無しさん
NGNG最近のキーボードに付いているマルチメディアキーってあるじゃないですか。
MSのキーボードについてくるユーティリティの様にそれらのキーの機能をカスタマイズ
するツールを書こうとしています。
上のようなツールを入れなくてもWindows2000ではデフォルトでホームに戻る/ボリュームなど
の機能が有効になっています。
そこで質問なのですが、マルチメディアキーを押したときWindowsがデフォルトで行う処理
を抑止する方法って何か無いでしょうか?
WH_KEYBOARD及びWH_GETMESSAGEでグローバルフックを仕掛け、CallNexthookを
呼ばないと言う方法ではデフォルト処理が入ってしまいました(aなど普通のキーはちゃ
んと入力されなくなりました。)
0957デフォルトの名無しさん
NGNGWM_APPCOMMAND
0958デフォルトの名無しさん
NGNGそれはshellなフックで拾えるみたいなので今から試してみます。
ところで、HSHELL_APPCOMMANDって何番か分かりますか?
Delphi6のSDKは古くてまだ定義されてないみたいです。
0959デフォルトの名無しさん
NGNG#define HSHELL_APPCOMMAND 12
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG助かりました。開発を再開します。
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG仕様です。自分でがんがって無限UNDOでも実装させてください。
0965デフォルトの名無しさん
NGNG三文字ならjpnだろうな。
0966デフォルトの名無しさん
NGNGで、新スレどうする?
誰か立てる?
Windows Programing for C/C++(Not MFC)
http://pc2.2ch.net/test/read.cgi/tech/1018239290/l50
を使う?
09671 ◆3a4vmAmkAc
NGNG0968デフォルトの名無しさん
NGNG外務省の役人(だったっけな? うろ覚え)が、国名の3文字コードが
JAPになるのを嫌ってJPNにしたという逸話を聞いた覚えがある。
# スレ違いスマソ
0969デフォルトの名無しさん
NGNGYellow MonKey
YMKとか言うのはどうだろう?
0970デフォルトの名無しさん
NGNGやはり自分でウィンドウ作るしか
ないんかな。
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG全然足りんでしょう。
0974デフォルトの名無しさん
NGNG> 俺もUNCOを二回以上させたい。無理でしょうか?
浣腸したらいかがでしょうか?
0975デフォルトの名無しさん
NGNGルーラを表示したい場合、検索文字列を点滅させたい場合、etcetc。
いちいちサブクラス化して無理する位なら全部書いた方が最終的には綺麗に仕上がる。
0976デフォルトの名無しさん
NGNG> 投稿の大部分は自然言語だ、プログラミング言語ばかりでなく自然言語も読め。
お前は、
char *p;
char *q;
...
if(p == q){ // p と q を比較する。
と書いてあったら、大小比較じゃんとか思うのか ? (藁
ごねるのは、いいけどみっともないぞ。
> 「比較」とか「ポインタの比較」と言っている投稿は多数あるが
> 逆に「等値」は 908 になるまで一度も出てこないよ。
0977941
NGNGだからさあ、
>if(p == q){ // p と q を比較する。
>と書いてあったら、大小比較じゃんとか思うのか ? (藁
「書いてあったら」なんて仮定の話をしてもしょうがないだろう。
「そんなことはどこにも書かれていない」んだからな(笑
自分の脳内でなく過去ログを読め。
ところで話の流れは読めているか?
>>845- でしているのは「ポインタの比較」についての文法的な話であって
「if(p == q)」についての話なんてしていないぞ。
「==」はあくまで比較演算子の一つにすぎない。
それを理解してから過去ログを読み直せ。
897, 927 にも同じこと言われてるだろうが。
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGププッ、「比較演算子」だってさ。
こんなこと書いてるから、混乱しちゃってるんだろうね。
0981980
NGNG09821 ◆3a4vmAmkAc
NGNG0984デフォルトの名無しさん
NGNGオマエガナー
0985デフォルトの名無しさん
NGNG君は「比較演算子」と言われて何に混乱してるんだい?
比較演算子 := 不等号演算子 | 等非等演算子
等非等演算子 := 等価演算子 | 非等価演算子
0986デフォルトの名無しさん
NGNGなんでBuild9まで来て新参すれに吸収されるのか、と小一時間(略
新スレ立てて来るよ。しばしお待ちを。
09871 ◆3a4vmAmkAc
NGNG質問箱の継続に向けて積極的な表明がなければ私は新スレは立てない。
1001まであと僅かなので、おそらく私は新スレを立てることにはならない。
現実を私情をすてて見つめている。
0988デフォルトの名無しさん
NGNGWin32API 質問箱 Build10
09891 ◆3a4vmAmkAc
NGNGよろしくお願いします
0991あぼーん
NGNG0992デフォルトの名無しさん
NGNG等非等演算子 ?
Google でググって一件しか見つからないような用語で話されても困るんだけど。
2ch と言えど、自分の脳内じゃないんだからさ。
0993デフォルトの名無しさん
NGNGおまえらコテハンでやってくれ。
NGワード設定するから。
0994デフォルトの名無しさん
NGNGフックしたメッセージのパラメータを変更して目的地に渡すにはどのような手段があるでしょうか?
WH_CALLWNDPROCでフックを仕掛けて、
x = (CWPStruct *)(lparam);
if(x->message == WM_MOVE)
{
x->lParam = 15;
}
Result = CallNextHookEx(hook,code,wparam,lparam);
return Result;
ではメッセージは書き換わりませんでした。
0995986
NGNGWin32API 質問箱 Build10
http://pc2.2ch.net/test/read.cgi/tech/1047819779/l50
>>988もういなくなったのか・・・。
重複するかと思って待ちぼうけだったよ。
09961 ◆3a4vmAmkAc
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。