VisualC++相談室 2
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001いさましいチビの女
NGNG前スレが900を超えたので2を作りました。
↓前スレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=970607517&ls=100
0002デフォルトの名無しさん
NGNGここの画面のようなことをしたいのです(リストで選択したら
その内容がエディットボックスに書き込まれる)
が、リストから値を取り出す方法をだれか教えて下さい
どこか、参考になるページでもいいです。おねがいします。
0003名無しさん@お腹いっぱい。
NGNGプログラムしかできない理系最下層軍団早く氏んでくれ。
892 名前:名無しさん@お腹いっぱい。投稿日:2001/02/08(木) 03:45
プログラムしかできない理系最下層軍団早く氏んでくれ。893 名前:名無しさん@お腹いっぱい。投稿日:2001/02/08(木) 03:45
プログラムしかできない理系最下層軍団早く氏んでくれ。
894 名前:名無しさん@お腹いっぱい。投稿日:2001/02/08(木) 03:47
まあ馬鹿だろうからプログラムもろくにできないだろうけどね
0004デフォルトの名無しさんだもん
NGNGGetItemTextで取得できるよ。
ただ、IMCHANGEDやITEMCHANGINGイベントないでやったら今選択した奴じゃなくて
一つ前のが取れたと記憶してるけど。 そこら編チョコっと注意かも。
0005デフォルトの名無しさん
NGNGOnEnd中でAfxGetMainWnd()->PostMessage(WM_COMMAND, ID_APP_EXIT);
を呼んでもすぐには終ってくれません。
何で終らすのが良いのでしょうか?
但し、この終了処理はOnInitDialog以外からも使います。
0006デフォルトの名無しさんだもん
NGNGEndDialog(0);
でいいんじゃないの?
0007デフォルトの名無しさん
NGNGダメでした。
AfxGetMainWnd()->PostMessage(WM_COMMAND, ID_APP_EXIT);
が働かずに(つーか待ち状態?)でプログラム終らずに、OnEnd()から
戻ってきちゃう・・・・
0008デフォルトの名無しさんだもん
NGNG何をしたいかがいまいちわかんないです。
自アプリを終了したいの?
ダイアログのアプリなんだよね。
で、ID_APP_EXIT は自分で定義したの?
とりあえず自分を終わらせるなら、
EndDialog(0);
実行するだけで良いと思うんだけど。
::PostMessage(this->m_hWnd,WM_QUIT,0,0);
とかね。
0009デフォルトの名無しさん
NGNGつか、
EndDialog(hDlg,(LOWORD)0);
がふつうでない?
0010デフォルトの名無しさん
NGNGstatic int XX;
のようにクラス宣言の中にかくだけじゃ駄目ですか?
早急にレスきぼーん。
0011SAGE
NGNGMFCの話だろ、たぶん、おそらく。
>10
更に、どっかしらのソースに
int CHoge::XX;
って書く。
0012デフォルトの名無しさん
NGNGpDC->Ellipse(a - pDoc->m_Array[i], b - pDoc->m_Array[i],
a + pDoc->m_Array[i], b + pDoc->m_Array[i]);
pDC->Ellipse(c-10,j*10-10,c+10,j*10+10);
上はうまく描画されるのに、下はうまく描画されません。
どうしてかわかりません。教えてください。
a〜dの値は固定なのですが、iとjは条件によって変わります。
ちなみにjは、その直前でのループを回った回数です。
よろしくおねがいします。
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG買ったほうがいいのでしょうか?
(VC++を手に入れたばかりです)
001512
NGNGSetTimerを使った実験してます。
x=300の軸上に描いた円を、ファイルから読みこんだデータをもとに動かそうとしてます。
タイマーで画面をInvalidateRectして、以下の関数をOnDrawで呼んでます。
タイマーが来るごとに、i++してます。
void CTimerView::DrawVelocity(CDC* pDC, CTimerDoc* pDoc)
{
//変数のコマごとの初期化
int kk = 0;
tempVol = 0;
realVol=realVol+pDoc->m_Q[i-1];
//どこに描画するかの判定
for(int k=nPoint*(i-1); tempVol<=realVol; k++){
if(k==nPoint*(i-1)){
tempVol = pDoc->m_A[k] * realDx / 2;
}
else if(k==nPoint*i){
tempVol = tempVol + pDoc->m_A[k] * realDx / 2;
}
else if(k>nPoint*i){
break;
}
else{
tempVol = tempVol + pDoc->m_A[k] * realDx;
}
kk++;
}
//円を描画
if(tempVol>=realVol){//原点(300,0)からループ分kkに移動した位置に描け。
pDC->Ellipse(300-5, kk*7-5,300+5, kk*7+5);//(注)
}
else{//軸の長さを超えた場合は、原点に描け。
pDC->Ellipse(300-5,-5,300+5,5);
realVol=0;
}
return;
}
こんな感じです。
実行してみると、(注)のところにkk=0の状態でいきます。
ずっとkk=0の時の位置に円が描かれるだけで動きません。
同じアルゴリズムをmfcAppwizardではなく、Win32ConsoleApplicationで検証したところ、
kkの値はちゃんと変化していました。(timerの変わりに、外側にもう一つforループをつけた。
初心者なものでWin32ConsoleとmfcAppwizardでのコードの書き方の違いがわかってないからだと思いますが、
どこが間違えてるのかわかりません。
よろしくお願いします。
0016デフォルトの名無しさん
NGNG0017SAGE
NGNGタイマーが呼ばれてないだけでは?
DrawVelocity に入るときの i の値はちゃんと変化してるのか?
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGたぶん、Family Model Steppin あたりの数値から、求めているのか音も思いますが.
(apiではPentium2/proまでしかわからず、CeleronとかPentium3とかわかんないので.)
HDDBENCHIとかどうやってるんだろう・・・・
0020まんこ
NGNG皆さんはなにからやりましたか。?
0021デフォルトの名無しさん
NGNGMSDNヘルプ(標準でついてるやつ)にWindowsAPIのリファレンスって
載ってないんでしょうか?
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGプラットフォームSDKのところ
0024名無しさんi486
NGNGhttp://www2s.biglobe.ne.jp/~maekawa/dev/vc/cpu/index.html
見れ見れ。
0025名無しさん@お腹いっぱい。
NGNG0026名無しさんi486
NGNGSendKeysってなに?どんな動作するの?
0027名無し~3.VOB
NGNGMFC使った方が無難でしょうか。
実行時にランタイムが必要ってのがヤなんですけど・・・
0028名無しさん
NGNG関数消すと
ClassView消えるんですけど
0029名無し~3.VOB
NGNG0030デフォルトの名無しさん
NGNG一旦VCを終了させ、
clwファイルを削除してからそのプロジェクトを再度開き、
ClassWizardを起動して内部情報を再構築。
あとコピペで同じソース使いまわしてると、
//AFX〜のマクロに旧関数のソレが含まれていたりして
ClassWizardが動作不正起こす。
0031名無しさん@お腹いっぱい。
NGNG0032デフォルトの名無しさん
NGNGそうみたいだね。
0033デフォルトの名無しさん
NGNGそれとも、単にマウスドラッグの始点と終点を計算して、自分で点線を長方形になるように描かなければいけないのでしょうか。このためだけのクラスってあるんですか?
0034デフォルトの名無しさん
NGNGDrawFocusRectっつーAPIも一応用意されとるよ。
0035デフォルトの名無しさん
NGNGVC++でリソースを作って各コントロールの文字列の
フォントサイズを変えたいんですけどどうやればいいんでしょうか?
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNGおお。
34さんが答えてるとこアレだが、ちょうど
俺もそこなので。
ビュークラスの中でラスターオペレーション
使って線を描く。自前。
んで、OnSetCursor内でトラッキング。
もっと素敵な方法あったら、誰か教えて。
0039デフォルトの名無しさん
NGNGマウスカーソルがウインドウの外に出たとき拾えないくなるんだけどなぁ。
0040デフォルトの名無しさん
NGNGMSDNとほとんど同じ内容だった気がします。
>>25
SetKeyboardStateかkeybd_eventとかじゃ駄目ですか。あまり知らないんですが。
004119
NGNGthanks ここからどうやってCPUを判別したらいいか悩んでるんですけど。
ある程度はレジストリから取得できるんですけど、その先が・・・
2次キャッシュのサイズとかの取得に方法とかですね・・・
004238
NGNG某AutoCadモドキ選択を作ってるんです。
カーソルがはみ出た時の処理がなかなか深い(手抜きとも言う)
まともなドラッグなら39さんの処理は要るね。
さっき「ラスター…」でヘルプ引いたら無かったので、
SetROP2/GetROP2で引いてください。
0043デフォルトの名無しさん
NGNGMFCにCRectTrackerというクラスがあって、単にOnLButtonDown内でTrackRubberBandメソッドを呼んでやるだけで簡単にできました。
一件落着。(^_^)
0044デフォルトの名無しさん
NGNGパソコン(1)でデータを転送し、パソコン(2)でデータを読み取って
パソコン(2)からCOMポートで接続された他の機器へデータを流す
には、パソコン(2)での処理は、どのように作り込めばいいですか?
(パソコン(1)からは5秒毎に1回、1日中命令を出します。)
0045七誌
NGNGレコードセットに対してSQLを渡そうとしているのですが、
1つめのような短いSQLは、実行できても、2つめのような
長いSQLは実行できません。なぜでしょうか。
長い方のSQLには途中で変数をつないであったりするのですが、
出来上がったSQLをACCESSで直接実行しても、問題はありませんでした。
コンパイル,リンクは大丈夫なのですが、実行時にASSERT?がでます。
#include <afxdao.h>
CDaoDatabase MyDB;
CDaoRecordset MyRs(&MyDB);
void CSearchDlg::OnButton1()
{
CString DdPath;
CString SQL;
DbPath = "c:\\database.mdb";
MyDB.Open(DbPath);
/* こんな短いのはOK
SQL = "SELECT * FROM TABLE_ABC;";
MyRs.Open(dbOpenDynaset,SQL,dbReadOnly);
*/
/* 上の変わりにこれはNG
SQL = " SELECT"
" TABLE_ABC.field01"
",TABLE_ABC.field02"
",TABLE_ABC.field03"
/*ここに長いSQLを記述
MyRs.Open(dbOpenDynaset,SQL,dbReadOnly);
*/
}
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG(2)の方はソケット開いて待機(サーバー)
(1)の方が(2)に繋ぐ(クライアント)
(2)がデータ受け取ったらCOMポートに送信。
必要なら(2)にキャッシュ機能を付けデータがある程度たまったらCOMポートに送る。
(2)にGUIを付けたいならマルチスレッドにし通信機能を別スレッドにやらす。
0048デフォルトの名無しさん
NGNGスクロールバーを追加したいんですが,どうしたらいいでしょうか?
0049名無しさん@お腹いっぱい。
NGNGスタイルを変える。
0050デフォルトの名無しさん
NGNG44です。ありがとうございました。
で、またまた質問なのですが、
初心者だと思って聞いて下さい。
(2)がデータを受け取ったらと有りますが
「データを受け取ったら処理をする」という
作り方が分かりません。
教えて下さい。
0051デフォルトの名無しさんだもん
NGNGやり方なんてコーディングしだだろうけど、
socketからの読み出しなら recvfrom 使うだろうから、
そこで、受信パケット識別後必要なものなら COMポートに送信。
とか。
0052ひつじさん
NGNGしたいときって、どうするの?手作業??
一度つけたら変更不可なの?
0053名無しさん
NGNG俺は余計なファイル(*.ncbとか)を消した後、全テキストファイルで
文字列置換やってる。
今のところ不具合はないよ。
0054ひつじさん
NGNGやっぱそんなベタな方法しかないのか・・・・?
クサレMSめ。
0055七誌
NGNG自己レス
SQLを格納しているCString型の先頭にブランクが入っているのが
原因のようです。現在、調査続行中。
解決かも・・・
"SELECT"と" SELECT"の違い!?
これぐらい解読して欲しいと思うのですが、C++としてみた場合、
相当意味が違っているのでしょうか
0056デフォルトの名無しさん
NGNGアドミニ権限を持っているかどうか
知りたいのですが
どのように作り込めばいいですか?
教えて下さい。
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさんだもん
NGNGNetGroupGetUsers とか NetGroupGetInfo などを見てみてください。
0059デフォルトの名無しさん
NGNGLPBYTE bufptr;
NetGroupGetInfo (
NULL,
"Administrator",
0,
bufptr
);
というふうにしたのですが
error C2065: 'NetGroupGetInfo' : 定義されていない識別子です。
とエラーが出てしまいます。
どのようにすれば解消されるのでしょうか?
0060あげ
NGNG0061デフォルトの名無しさん
NGNG分かったんですが、どう組み込んだら良いんでしょうか?
0062デフォルトの名無しさんだもん
NGNGちなみに、NT系専用です。
で、Lm.h をインクルードして。
Netapi32.lib のリンクも必要かも。
ふぁいとっ。
006359
NGNGありがとうございます。
で、
2番目の引数なんですけど
グローバル グループ アカウントの名前を含む、
Unicode文字列を指すポインタです。
となっているんですけど、
LPWSTRってなに?
どういうふうに設定すればいいの?
Administratorを設定したいよ〜!
006459
NGNGもういいです。
ありがとうございました。
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGCString xyz;
xyz = "あいうえお";
abcde = (char *)calloc(10,sizeof(101));
//これで、動的に10個の配列が確保できたと信じています
この時xyzの内容を*(abcde+5)にセットするには、どうすればよいのでしょうか
0067デフォルトの名無しさん
NGNGabcdeの配列の5番目の間違いです
*(abcde+5)だと、へんですよね
ん?なんか、配列の宣言も怪しくなってきた
101の長さのabcdeを10個、確保するというのもあってますか?
0068>65
NGNG0070デフォルトの名無しさん
NGNG2次元配列の取り方が根本的に間違えているんですね
newと、deleteで、動的に配列を作るコードを組んで出直します
0071クロネコ
NGNGいい加減に作ってみた。MFCはしらんので適当にあしらえぃ。
char * string="abc";
char ** array = malloc(10 * sizeof(char *));
for ( i = 0; i < 10; i++ ){
array[i] = calloc(100 + 1, sizeof(char));
}
strncpy(array[5], string, 100);
つーかC版にいきなされ。
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG衝撃の事実!神よ!
0075>65
NGNG基本はダイアログなので変更可能。
他のWindowsではStaticコントロールのIDに違いがあるかもないかも。
Spy++とGetDlgCtrlID APIをうまくつかう。
こんな馬鹿馬鹿しいことやる理屈はないけど、たぶん背景色
もフォントも変えられるし。文字列の表示されているところに
動画を貼ったりもできる。
#include "stdafx.h"
#include <windows.h>
#include <tchar.h>
BOOL CALLBACK EChildProc(HWND hWnd,LPARAM lParam)
{
TCHAR str[255];
GetWindowText(hWnd,str,255);
if(lstrcmpi(str,_T("caption"))==0)
{
HWND bbb=GetDlgItem(hWnd,0x0000ffff);
HFONT ccc = CreateFont(15,0,0,0,FW_BOLD,FALSE,FALSE,
FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH,_T("MS ゴシック"));
SendMessage(bbb,WM_SETFONT,(WPARAM)ccc,TRUE);
SetWindowText(bbb,_T("変更"));
}
return TRUE;
}
DWORD WINAPI Thread(LPVOID lpVoid)
{
Sleep(50);
EnumChildWindows(NULL,EChildProc,0);
return 1;
}
int main(int argc, char* argv[])
{
CreateThread(NULL,0,Thread,0,0,NULL);
MessageBox(NULL,_T("text"),_T("caption"),MB_OK);
return 0;
}
0076>66
NGNGやめたほうがいい。
CStringの使える環境でcallocなんて使うのもよしたほうがよい。
文字列操作はメンバ関数を使えばおおよそのことはできる。
それでもだめならSTLの<wstring>+<algorithm>に移行する。
0077デフォルトの名無しさん
NGNGCOMだかOLEだか良く分からんがそれの知識も必要らしい。
どこか勉強にお薦めのサイトとかないですか?
ドキュソ学生に亜依の手を!
0078デフォルトの名無しさん
NGNGその前に漢字を勉強しろ!!
0079デフォルトの名無しさん
NGNG円周率はどうすれば扱えるのでしょうか。
多分、円周率の近似値が定数として用意されてるような
気がするですが、変数名が分かりません。
よろしくお願いします。
0080名前ついてますか?
NGNG0081デフォルトの名無しさん
NGNG0082SAGE
NGNG探すの面倒なら自分で定義してしまえい。
0083>77
NGNGというらしいので、まずはCOMの勉強をしよう
本屋にいけば、COMの本はざくざくある。
無駄なお金をかけたくないなら、
MSDN-Onlineで、Dr.GUIの記事を読もう。
MSDNのCDが手に入るなら、97年暮れくらい
の記事に集中して特集されいる。
ただ、COMはWindows 1.0全体より複雑だと
いわれるくらいのものなので、それなりに習得に
根気も時間もいることを覚悟にしないといけない。
0084>80
NGNG<cmath>だね。
0085デフォルトの名無しさん
NGNG\nを使っても変な点が出るだけなのですが。
0086偽名無しさん
NGNG0087デフォルトの名無しさん
NGNGそもそもこれらがどんな作りになってるのかとか、メンバ関数の
解説とかが詳しく載ってる本が殆ど見あたらない...
何か良い情報源はないでしょうか。
0088偽名無しさん
NGNG0089デフォルトの名無しさん
NGNGドット絵風の絵を描くペイントツール作ってます。
ある矩形領域内にマウスポインタがある場合にその矩形領域を塗りつぶす
というようにしてるんですけど、これだとマウスを速く動かしたときに
線ではなくて点になってしまうんですが、どうしたら線にできるのでしょうか。
一般のペイントツールみたく、MoveTo、LineToのような方法はないでしょうか。
0090デフォルトの名無しさん
NGNGよろしくお願いします。
0091デフォルトの名無しさん
NGNGこのAPI使ってS-JIS→UNICODE→EUCって変換は可能なのでしょうか?
MFC or SDKでs-jisからeuc変換したいのですが・・・。
0092デフォルトの名無しさん
NGNGActiveXなら吉田弘一郎「ActiveX教養講座」が面白い。
誤字脱字が多いのがこりゃまたうける。
ActiveXがどんなもんか楽しく覚えるにはいいと思う。。。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG方法を教えていただけませんでしょうか?あのaとかoの上に
..がついてるヤツのことです
今はそこだけ画像に置き換えているのですが、これだとフォント
サイズ変更したときとか不便で不便で・・・
0095デフォルトの名無しさん
NGNG009694
NGNGえっと、それがないんですよ、ウムラウトは
ギリシャ文字はあるのに・・・
0097SAGE
NGNG無理
>94
Unicode対応のフォントで 00e4 とか 00f6 を書くべし〜
009891
NGNGはい。試しました。
結局このAPIはワイド文字列に変換するためのもので、
変換をおこなうときUTF-8変換とかを指定できるだけのものでした。
それにしても変な関数名だなこれ。。。
どっちがUNICODEか分かりにくいよ>M$
>>97
はっきりした回答どもです^^
0099デフォルトの名無しさん
NGNGClassWizardを使用しCDialogから派生させてCSubDialogというクラスを
作ったのですが、そのCSubDialogからまたClassWizardを使用して
派生させクラスを追加するということはできないのでしょうか?
基本クラスが自分で追加したクラスの場合は自分でソースに追加しなければ
いけないのでしょうか?
0100[Q]
NGNGCEditView をログウィンドウ(ex. Iria の下ウィンドウ)
のように使いたいのですが、
単純に SetWindowText しても一行が書き換わるだけでうまくいきません。
行を Append していくにはどうしたらよいのでしょうか?
0101デフォルトの名無しさん
NGNGMFCを使っていますが、ID_FILE_NEWなどのcommandを、ボタンやメニューによってではなく、プログラム内のメソッドなどで発生させるようにするにはどうしたらよいのでしょうか。
よろしくおねがいします。
0102デフォルトの名無しさん
NGNG0103SAGE
NGNG0104( ´∀`)さん
NGNG0105デフォルトの名無しさん
NGNGよろしくおねがいします。
0107>100
NGNG置き換わるはずなのに。
追加したい場合は文字列に改行をいれてみましょう。
もしくはエディットビューなど使わず、リストボックスや
リストビューを使うべきです。
0108>105
NGNGどうせ、COMが勝手にばんばん使って、
われわれの故知らぬところで、肥大していきます。
100Kや200Kのレジストリは設定の保持に使って
もぜんぜん問題ありません。
有名なところでは秀丸エディタがこの類です。
安全なINIファイル程度に考えてください。
まあ、いじるといろいろ面倒なことがあるので、独自の
設定ファイルのルーチンを組むのも手ですが。
(わたしのアプリの設定ファイルはみんなXMLになってます)
どうしても、レジストリが、
肥大するのが厭なら、HKEY_LOCAL_MACHINEなどの単一な
ハイブに書き込むのがいいです。(書き込めない場合もありますが)
0109>99
NGNGそんな奇妙なことは、やらない方がいいです。
0110デフォルトの名無しさん
NGNG普通レジストリにはでかいファイルは書かない。
INIファイル(普通のファイルでも良い)に書いて
レジストリにはそのファイル名を書いとく。
設定の読み書きするときはレジストリからファイル名を読み込んで
そのファイルを読み込む。
0111デフォルトの名無しさん
NGNGうーん、確かにCOMは破壊的だね。
いくら自分で気を付けて無駄にレジストリを使用しないようにしてもばんばん重くしていく。
でもやっぱり100kや200kもレジストリ使われたくないです。
たとえ1kでも、どうしてもレジストリを使わざるを得ないようなデータ(ファイルの関連づけとか)以外は極力INIファイルにデータを保存して欲しいなあ。
0112>110
NGNGINIファイルの代替という旨、
MSが言ってるので、
10K程度なら気にせずに書き込んでるけど。
0113108>111
NGNGワタクシ的には使いたくありません。
というわけで、
コンスタントに存在するモジュールの場合は、
わたしの場合は、アプリと同じフォルダのXML
ファイルか、レジストリに保存しています。
本来ならシェルを使って設定ディレクトリにぶちこむ
べきですが。
設定ディレクトリへのパスはIE4.0が入っていないと、
わかりません。
アンインストーラーの用意ができてるのなら、レジストリ
のHKCRあたりに設定をぶちこむのはお手軽な手段です。
0114デフォルトの名無しさん
NGNGなるほど。
CEditView だと SerializeRaw メソッドがあるので、
CEditView に文字列を保持しているかと思っていたのですがそうじゃないんですね。
じゃあおとなしく CString str += nextLine; とでもしてみます。
ありがとうございました。
0115デフォルトの名無しさん
NGNGF5を押すと、InitInstanceをコールしてくださいというようなメッセージが出て
ダイアログも出ずに終了するのですが、どこに何を記述したらいいのでしょうか
教えて下さい!
0116デフォルトの名無しさん
NGNGどうすれば背景色を変えられるんですか?
Rectangleで塗りつぶすしかないんですか?
0117デフォルトの名無しさん
NGNGSTLのstringにぶちこむのにC++的に一番いい方法は
どんなのでしょうか?ついでにその逆も。
0118デフォルトの名無しさん
NGNGこれほんと?
0119デフォルトの名無しさん
NGNG良いかどうかは別としてストリーム使うのが標準(というか他に無い)
文字列ストリームね。
0120115
NGNG>>> If this dialog has OLE controls:
>>> AfxEnableControlContainer has not been called yet.
>>> You should call it in your app's InitInstance function.
どこに、何を書けばよいのやら・・・
0121デフォルトの名無しさん
NGNGぷ。馬鹿正直に専用のAPIで記録してるやつ発見。
0122115
NGNGStdAfx.hに
#include <afxdisp.h>
InitInstanceに
AfxEnableControlContainer();
を追加で、解決したような気がします
0123デフォルトの名無しさん
NGNG自分で書いてるのか?
仕事遅そうだな。
0124>116
NGNGWM_CTLCOLORか、WM_CTLCOLORXXX、ウィンドウメッセージ
を使用してください。
詳細はWIN32SDKを。
0125>117
NGNGc++だけで済ませるなら、ストリングストリームでしょうが、
これは将来的に、obsoleteされる危険があります。
となんかの本に書いてありました。
<cstdio>や<cstring>もc++の一部ですので(これはおそらく不変です)
素直にstd::itoa(),std::sprintf()などして利用するのがいいかと。
(文字->数字)
std::atoi()
もしかしたら、便利なアルゴリズムが標準で用意されているかも、
しれませんが、寡聞にして聞きません。
もし余裕があるのであれば、basic_stringテンプレートから
独自拡張したクラスを構築されてはいかがですか?
仕事で使うのなら、テンプレートベンダーから購入するのも
よろしいかと。
0126デフォルトの名無しさん
NGNGダイアログアイテムとかとやりとりするときに結局
文字列使わなきゃいけないからメンドくさい。
どうすればいいのね。
0127デフォルトの名無しさん
NGNGこれをソース上で消すようにするにはどうすれば良いのでしょうか?
0128デフォルトの名無しさん
NGNGsend、receiveを行いたいのですが、ソケットハンドルを
引数渡しして、attachすれば良いと本で読んだのですが、
具体的なやり方がわかりません。
どなたか分かります?
別スレッド呼び出し関数は以下です。
AfxBeginThread(ThreadProc,GetSafeHwnd(),THREAD_PRIORITY_NORMAL);
0129デフォルトの名無しさん
NGNGコントロールのフォーカスが勝手に移動するので困ってます。
これを制御する方法はないですか?
Spy++などでメッセージの流れも見てみたのですが、上手い方法が思い付かなくて‥‥‥
0130c++
NGNGUNICODE が定義されているなら wcout に自動でするような
マクロは定義されていないのでしょうか?
tchar.h にはなかったのですが……。
同じような問題に陥った方・わかる方で、
どう解決されたかをご教示ください。
0131名無しさん
NGNGサービスパックはバージョンが4のやつを
当てればすべてOKなんでしょうか?
ちなみにnafxcw.libがなくて困ってます。
0133名無しさん
NGNGえ?本当ですか?私のはVC++6.0StandardEditionってやつですが
Learning Editionってこれのことですか?
ということはprofessional版以上じゃないとnafxcw.libが必要な
ソースはビルド出来ないってことですか?がーん!!
0134デフォルトの名無しさん
NGNGメッセージ処理をスマートに行う方法があれば教えてください
今はプロシージャを持ってるクラスに、メッセージと直接関係する
クラスの参照をいちいち全て持たして、呼び出しているのですが・・・
できればメッセージと関係するクラスに直接メッセージを送りたい
のですが、ウィンドウをサブクラス化したりするとかえって
分かりづらい気もして・・・何かよい方法があったらお願いします
0135デフォルトの名無しさん
NGNG質問の意味がかなりわかりづらいから適当な答えになるけど、
MFCの様に継承されたオブジェクトごとに
メッセージフローを持たせればいいのではないんでしょうか?
0136デフォルトの名無しさん
NGNGなんか、この方法、前から使ってたんだが最近○ねう○おとかが
使い出したんで別の方法を模索中
0137134
NGNGわかりづらい質問ですいません。
更に申し訳ないことにMFCはよく知らないんです。うーん、
なんとなく今やってることと同じような気も・・・違うのかなぁ。
今度ちょっとMFC、読んでみます。
>>136
なるほどー、これは良さそうですね。試させて頂きます。
ついでにやねさんのところ行って見てきてみます。
ブックマーク残ってれば(w
お二人とも貴重なレス、ありがとうございました。
0138デフォルトの名無しさん
NGNGhashでやれば?
おれは昔っからそうやってるよ。
真似っ子は嫌いそうだが。
0139132
NGNGあーBorland系とごっちゃになってた。そう、Pro版だけ。
「MFCをスタティックリンク」みたいな設定をやめて
ダイナミックリンクするようにすれば nafxcw.lib 不要になるはず。
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGメッセージマップのチェイン化でメンバオブジェクト(EDITクラスウインドウとか)へ
メッセージを分配することができる。
0142でふぉると名無しサン
NGNG#define __TEXT(quote) L##quote
なにこれ???
シャープはなにを意味するんですか?
はじめてみた....
0143名無しさん
NGNG連結演算子です。
0144142
NGNGおおう、即レス助かります。
連結演算子っすね。
調べちゃったよ。
つーかしらんかった、こんな怪しげな演算子があったとは。
0145デフォルトの名無しさん
NGNGどうも。
正確にはhashmap使ってたんだが、まー、似たようなもんだから。
今読み返してみてどうにも負け惜しみにしか見えないな。俺の書きこみ
結局記事にしたもん勝ちだな(藁
0146デフォルトの名無しさん
NGNG0148133
NGNGなるほど、静的リンクしたいとき必要なライブラリってわけですか。
実はあきらめてVC++アンインストールしてしまったので
もういちどインストールして頑張ってみます。
ありがとうございました。
0149デフォルトの名無しさん
NGNGCStringの項目に改行コード(\n)を入れると、
ダイアログでは改行されずに・に化けちゃうんですけど
どうしたら良いんでしょうか?
0150SAGE
NGNG改行コードは \r\n 。
0151デフォルトの名無しさん
NGNG0152名無しさん@お腹いっぱい。
NGNGWordやExcelのドキュメントの書き込み禁止/許可を
させるにはどうしたよいのでしょうか?
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG・recv一発で全部読み込めると思っている。
このあたりか。
0156デフォルトの名無しさん
NGNGどうやったら全部読めるんですか?
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGTCPはストリーム指向なのでパケットの区切りに特別な意味はないよ。
読みたいところまでrecvしよう。
0159ななし
NGNGclass mycom : public myif {
protected:
ULONG refcnt;
public:
mycom(): refcnt(0) {};
~mycom() {};
HRESULT myfunction(char *buff);
#if 0
// 多重継承を解決しつつインターフェースを返す
HRESULT QueryInterface(REFIID riid, void **obj);
// リファレンスカウントの操作と自己消滅
ULONG AddRef();
ULONG Release();
#else
// IUnknownメソッド
STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID*) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
#endif
};
C2555(メソッドの返り値が違う)ってエラーで
#elseの方でないとコンパイルとおらないけど、
VisualStudio6ってそういうもんですか?
Cマガの解説間違ってない?
0160デフォルトの名無しさん
NGNGオーバーライドしたいのですが、オーバーライドのやり方がわかりません。
一体、何をどうすればOnRegisterdMouseWheelをオーバーライドできたことに
なるんでしょうか?
0161デフォルトの名無しさん
NGNG__stdcallが足らない。
Cマガの解説は知らない。
0162デフォルトの名無しさん
NGNGJPEGのコメント?(制作したソフトの名前とか著作権とか)を読み込むには何て関数使うんですか?
逆に保存時にコメント入れるにはどの関数使えばいいですか?
ソースがデカ過ぎて良く分からん。
誰か教えてお願い。
0164156
NGNGありがとん♪できました
0165デフォルトの名無しさん
NGNGそん中でsleep(5000)させる(テスト的にね)と
メインダイアログも固まってしまいます。
これじゃ、マルチスレッドの意味がないんですがどうすればよいの?
0166デフォルトの名無しさん
NGNGありがとう。
これから調べてみる。
0167>165
NGNG0168デフォルトの名無しさん
NGNGSetTimerやKillTimer使ってみたら?
0169デフォルトの名無しさん
NGNG>>165 がやりたいのは、そういうことじゃないと思うんだけどなぁ・・・
作ってるWindowに親子関係が有るとSleep(5000)してる間のメッセージが
止まっちゃうから、当然そうなるな。
I/O待ちで時間が掛かる処理は、非表示ウインドウにして裏にで回したほうが、
多分期待するような、マルチスレッドになるだろうけど。
そもそも、ユーザーインターフェーススレッドが、それだけ黙って止まるんなら、
メインダイアログも一緒にそのまま止まってて良いんじゃないの?
なんか、作りをもう少し考えたら?VC+MFCだからと言って、
スレッドで必ずしもウインドウ持たなきゃいけない訳でもないと思うんだけど。
0170名無しさん
NGNG直りません。
0171デフォルトの名無しさん
NGNGとりあえず複数の掲示板で同じ質問するのは良くないかも
0172デフォルトの名無しさん
NGNGあ、ばれた・・・・でも急ぎだったんで・・・・
0173デフォルトの名無しさん
NGNGフェイススレッドじゃないよ。
0174デフォルトの名無しさん
NGNGしょうがないよ。
165は自分のことしか考えないドキュソだから・・・。
0175デフォルトの名無しさん
NGNGvoid main()
{
printf( "好きなことを書きましょう" );
}
これすらコンパイルできません。どうやってもエラー1出てしまいます。
拡張子は.cppなんですが、間違ってますか?
新規作成のときに、どれを選べばいいんでしょうか
0176175
NGNG0177デフォルトの名無しさん
NGNG半角スペースと全角スペースってわかる?
まずそれからチェックだな。
0178デフォルトの名無しさん
NGNGまた、そこで思ったんですが、共有リソースはリソースとインターフェースクラスでDLLにしてしまうしか手がないのでしょうか。
0179175
NGNG0180デフォルトの名無しさん
NGNGエラーメッセージを書いといたほうが答えてくれる人が増えるよ(多分)。
0181175
NGNGという感じです。
エラー、警告ウィンドウは出なかったです。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGスキャナに紙を挿入してスキャンを完了した時点で、実際にデバイスを操作しているスレッドからコールバックし、そのコールバック先の関数内でtheApp.OnFileNewを呼んでDocがデータを装填、Viewも作成される…という段取りだったのですが、View作成時にどうしてもエラーが起きてしまいます。(Docは問題なく作成されてました。) そのエラーはWinMDI.cpp内のASSERT_KINDOF(CMDIFrameWnd, pMainWnd);に引っかかるというのものです。これが、デバイス操作のスレッド(AfxBeginThreadで呼んでて、CWinThreadではないやつ)を、AfxBeginThreadを抜いて、ただの関数として呼ぶと、なんのエラーもなく完璧にViewも作成されます。僕の頭では、スレッドのコールバックを契機としてOnFileNewを起動するとASSERT_KINDOF(CMDIFrameWnd, pMainWnd)に引っかかるというのが不思議でしょうがないのですが、なにか良いご指導をいただけないでしょうか。よろしくおねがいします。
0184デフォルトの名無しさん
NGNGときにMFCが標準で出すどのDocumentを作りますか?みたいな確認
ダイアログが出てしまいますが、あれを出さずに、メインフレームの
メニューから選択するようにしたいです。
どうやって対応させればよいでしょうか?
0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG他のコントロールと被らなければOK。
0189デフォルトの名無しさん
NGNG「他の」ってのはもちろん同一の親ウィンドウを持つ…ってことだろう。
それと…ちったあてめーで考えるか、やるかしてみろ。>185
0190175
NGNGエラーメッセージ「ファイル'***.h'の拡張子に関連したコンパイルツールが無いためにコンパイルできません。」
とでます。
これは、インクルードファイルをコンパイルしようとしたとき、何時でも出てきます。
VC++6.0には、付いてますよねぇ・・・?コンパイルツール・・・。
0191デフォルトの名無しさん
NGNG0192175
NGNGmspdb60.dllが無くて、cl.exeが起動できないみたいです。
これってどこかではDLできないんでしょうか。vectorにも無いみたいですし・・。
0193デフォルトの名無しさん
NGNGパス間違ってるだけじゃねーの?
cl.exeローカルドライブ全検索して味噌
0194193
NGNGツール-オプション-ディレクトリ-実行可能ファイル
に通せばいいと思ふ。
0195175
NGNG自分の場合、「D:\Microsoft...」のフォルダの名前を
「VC++」と変更していたので出来なかったみたいです。(これが全ての元凶の様でした)
193さんのレスがヒントになりました。
あ、あと、>>192のMSPDB60.dllは、間違ったディレクトリにあったので、
Windows\system内に移動させたらcl.exeは動くようになりました。
どうもありがとうございました。
0196165
NGNG処理をコンストラクタに書いてました。
Run()を作ってそっちに移行するとうまく動きました。
すいませんでした。皆さんありがとうございました。
ときに、コンストラクタとInitInstance()の
違いって何なんすか?
0197HelpMe
NGNGBindで失敗してしまいます。
で、そのポートをどのアプリケーションが開いているか調べる方法って
ないでしょうか?
0198初心者
NGNGエディタが現在選択されているIDを返す関数ありませんか?
とにかく現在選択状態になっているIDの取得のしかた教えて
ください。
SDKでお願いします。NOT”MFC"
0199デフォルトの名無しさん
NGNGリモートの実行可能ファイルのパスとファイル名を聞かれます。
ここには何を入れるのがベストでしょうか。
0200デフォルトの名無しさん
NGNGlib?
0201デフォルトの名無しさん
NGNG>リモートの実行可能ファイルのパスとファイル名を聞かれます。
>ここには何を入れるのがベストでしょうか。
普通はそんなこと聞かれないはずですが、どういうプログラムを
ビルドしたんですか?
0202デフォルトの名無しさん
NGNGHWND GetFocus(VOID)
とか。
0203デフォルトの名無しさん
NGNGコンストラクタはnewされると呼び出されるものですが、InitInstance()
は、WinMainが呼び出すものです。
0204デフォルトの名無しさん
NGNG貧乏大作戦のダメジジイが途中で挫折して捨てぜりふを残して
さっていくさまににてるな。もう戻ってこなくていいよ。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGsprintfでは%eや%fで使えるのに。
0209デフォルトの名無しさん
NGNGsprintf使えばいいじゃん。
0210デフォルトの名無しさん
NGNGビュークラスで左ボタンダウンを拾っていますが、
これって取りこぼしとかあるんでしょうか。
OnDrawの中身が糞コード(自作のね)というのはあると
思うんですが、ノートと据え置きで挙動が微妙に違う。
0211デフォルトの名無しさん
NGNGどれ買っていいかわからなくて。
ちなみにPC暦は3年なので、こっちについてはド初心者でもないです。
0212デフォルトの名無しさん
NGNG画面更新速度の違いでしょ?
ノートは遅いからなんじゃない?
0213麻衣
NGNGhttp://mentai.2ch.net/test/read.cgi?bbs=prog&key=964560144
を読むと良いと思うなっ♪
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG表示させるアプリを作っています。表示させるHTMLファイルにもしエラーが
あった場合でも(スクリプトエラーとかプラグインエラー)
アラートのダイアログは絶対に出してはいけないという仕様です。
ちなみにSilentプロパティはTRUEにしたら、スクリプトエラーに関しては
対応できましたが、プラグインエラーに関してはいまだに出てしまいます。
どなたかこの辺の技術に詳しい方、ご教授願います。
0216215
NGNG処理でもいいです。
0217デフォルトの名無しさん
NGNGっていうかなっちゃったんですけど...
で、newしたりとか宣言部分でエラーになっちゃうわけです。
なにゆえプロテクテッドになるんでしょう?
0218デフォルトの名無しさん
NGNGそのクラスを勝手にnewしたりするなって意味では?
そのクラスを別途生成するメソッドがどっかに定義されているか
フレームワーク内部で使うクラスのどっちか。
(前者の場合そのクラスのスタティックメソッドの可能性が大)
0219デフォルトの名無しさん
NGNGウインドウプロシージャやダイアログプロシージャを
クラスのメンバ関数に出来ないもんでしょうか?
例えばclass CMyDlgって感じにダイアログ用のクラスを作った場合
そのクラスのメンバ関数にプロシージャがあればすっきりするなぁ
と思うんですが・・・
ようはAPIのRegisterClassとかCreateDialogでC++のメンバ関数の関数ポインタを
渡すようなのりの動作をさせたいんですが、C++のメンバ関数って
動的に使われる(?)からそのままじゃ渡せないですよね?
staticメンバ関数にすればいけそうな感じもするんですが
(まだ完全に試していないというかstaticメンバ関数にした事無かったからよくわからない)
staticメンバ関数って、クラスの静的データメンバにしか
アクセスできないような。
それだと「メンバ関数をプロシージャにしたい」意味がなくなってしまうので・・・
なんかいい方法ありますか?
できれば詳しく「何故可能なのか?」「何故不可能なのか?」まで教えていただきたい
んですが・・・(多くは望みません、ヒントだけでも)
0220麻衣
NGNGURLは・・・わすれちゃったの、エヘヘ
0221画像系
NGNGしたらよろしいでしょうか?
つまり,理論単位を0.01ミリメートルや1ピクセルに変換する方法が分
からないで困っています.よろよろ.
0222埋
NGNGそゆときは static なメンバ関数を渡すのが普通だね。で、大抵、
関数ポインタを渡すと同時にパラメータ渡せるようになってると
思うから、パラメータとしてクラスの適当なオブジェクトを渡すように
しといて、staticな関数の中でそのメンバを呼び出すっていう
2段構えにするとOK☆
「何故直接non-staticなメンバ関数を渡すのは不可能か?」だけど、
えーと、なんというか、staticじゃないメンバ関数を呼び出すには
関数のアドレスだけじゃなくてthisポインタもちゃんとなんとかしなくちゃ
ならないわけ。だから関数ポインタ渡すだけじゃ×…。
0223名無しさん@LV2001
NGNGこれだときちんと表示されてるか確認が取れないんです。
これを避ける方法ってありますか?
あと、VC++6.0のMFCで製作したツールなどを起動させるには、どのDLLが必要ですか?
0224デフォルトの名無しさん
NGNGDOS wo yameru
0225デフォルトの名無しさん
NGNG動体視力を鍛える
0226210
NGNGMFC的に、貯めて貯めてたまったイベントは
いつか吐き出してくれる作りなんでしょうか。
それとも、捨てられるんですか。
0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNG初心者は氏ねというMSからのメッセージですか?
0229名無しさん@LV2001
NGNGこのコードだとしたらどこにつければいいですか?
#include <iostream>
using namespace std;
int main()
{
cout << 06 << '\n' << 016 << '\n' << 0 ;
return 0;
}
0230デフォルトの名無しさん
NGNGお前はもう死んでいる!!
0231デフォルトの名無しさん
NGNGusing namespace std;
int main()
{
cout << 06 << '\n' << 016 << '\n' << 0 ;
getch();
return 0;
}
キーボードで何か入力するまで終わらないはず。(多分
0232デフォルトの名無しさん
NGNGとのエラーが・・・。
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNGMSDNで調べろ。
わしゃ Windows プログラマじゃ。
0235デフォルトの名無しさん
NGNG普通に「実行」させようとすると、
リモートなんたらのパスとファイル名聞かれるんですよね・・・。
そこに何を入れていいかわからなくて。。。。
0236デフォルトの名無しさん
NGNGん??ライブラリ作ってるのか?
プロジェクト作り直してみれ。
0237デフォルトの名無しさん
NGNGいや、普通にプロジェクトで作ってますけど、
親フォルダの名前変えたからいかんのかな・・・
0238麻衣
NGNG0239デフォルトの名無しさん
NGNGリモートの実行可能ファイルのパスとファイル名
[エディットボックス]
ってなかんじです。
0240麻衣
NGNGhttp://www.kt.rim.or.jp/~miz/osaru/rdebug/rdebug.htm
このページの通りにすればリモートデバッグできると思うよ♪
わかんなかったら・・・わかんないやり方はやめて普通にすればいいと思う。
それにしても、そこまで出てるんだったらとりあえずgooとか、googleで検索してみればいいと思うんだけどなぁ?
人に効いてばかりだとお馬鹿さんになっちゃうよ?
0241デフォルトの名無しさん
NGNGXΛ_ΛX / ̄ ̄ ̄ ̄ ̄
( ^∀^)< 効いて
( ) \____
| Y |
(__)_)
0243デフォルトの名無しさん
NGNGなぜかというと辞書が使い物にならんからです。
はっきりいってヤダです。
もうヤダです。
辞書をがむばって登録したのに、いきなり使えなくなるなんてヤダです。
IMEは別にうんこ以下とまでは言わないけれど、うんこ以上肛門未満ですよ。
でもやっぱりIMEと付き合っていくしかないんですよ。
運命なんですよ。
ATOK入れたいけど、それもヤダです。
だから僕はプログラミングはじめたのですよ。
最高の日本語変換システムを作るためですね。
もう60%はできてますよ。
当然売るんですよ。
これで大もうけするんですよ。
同意してくれた人には抽選で売上の10%あげるんですよ。
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNGアホが多いな・・・
0246マルチメディア
NGNGウィンドウズのSDKの所を読んでいたんですが、
VC++6のリソースエディタを使ってリソーススクリプトを作って、
ウィンドウクラスの登録で
WNDCLASS myProg;
・
・
・
myProg.lpszMenuName="IDR_MENU1";
・
・
・
RegisterClass(&myProg)
と言う風にやってもビルドした後メニューが表示されないんですが
どうしてなんでしょうか…?
resource.hの中の
#define IDR_MENU1 401
を消せば表示されるんですが仕組みがよくわかりません……。
誰か教えて教えて教えて教えて教えて下さい下さい苦堕鎖慰
0247マルチメディア
NGNG0248デフォルトの名無しさん
NGNG「お兄ちゃんに教えてあげる」スレに帰れっ!
帰れっ!
帰れよう!
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG変えたいのですが、どうすればいいでしょう?
*.rcにあるリソーススクリプトはあまりいじりたくないのですが。
0251デフォルトの名無しさん
NGNGわがままいってんじゃねーよ
InsertMenuItemとかでぢみちに入れてみ
0252デフォルトの名無しさん
NGNGmyProg.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
ってやってみれば、上手にいくかもね
0253デフォルトの名無しさん
NGNGinsertBeforeメソッドが使えなくて困っています。
コンパイルすると2番目の引数の型が違うと怒られます。
IXMLDOMNodePtrを_variant_tにすれば良い様なのですが
VCは初心者なのでやり方が分かりません。
どなたか教えて下さい。
お願いします。
0254いつでもどこでも名無しさん
NGNG[Ctrl]+[F5]
0256みずき
NGNGところが、実行ファイル本体の持つリソースIDと、設定ダイアログのDLLの
リソースIDが衝突してしまうという問題が発生してしまいました。
とりあえずIDを手動で変えることで回避はできると思うのですが、
これから先リソースが増えてきたら、それでは対応できない気がするのです。
なにか、良い方法はありませんでしょうか?
どなたか、よろしくお願いします。
0257デフォルトの名無しさん
NGNGリソースファイルのヘッダファイルの
_APS_NEXT_RESOURCE_VALUE
とかを変更しておけば毎回変えなくていいじゃない?
0258トリッキーの1
NGNGVisual C++で簡単なグラフィックを扱うアプリを作ろうとしたとき、
(例えば……オセロをさくっと作ろうとしたときの事を考えてください)
皆さんどういった環境で作成しますか?
WizardでMFCだと、document/viewのサポートが鬱陶しいし
生MFCを書くのもどうも面倒で気が引けます。
ましてやC+APIってのは時代に反しているし(お気に入りだけど)。
こういう状況で、皆さんのchoiceを聞かせてください。
0259デフォルトの名無しさん
NGNGゲームならAPIだろ?
MFCはウィンドウズっぽいソフト向き!
0260デフォルトの名無しさん
NGNG真面目な話、小さめのアプリなら私もC+++API(w
ウィンドウズっぽい機能使わないならかえって煩わしいですよね、MFC
ましてやトリッキーの1さんレベルなら!(cool!cool!cool!)
0261いさましいチビの女
NGNGWizardのMFCでも、DOC/VIEWを強制されるってわけじゃないけどね。
特に6からは、手作業なしでチェックボックスひとつでDOC/VIEWを
はずすことができるし。
0262みずき
NGNGありがとうございます。
でも、最初から、_APS_NEXT_RESOURCE_VALUE の
値は、メイン側とDLL側で違っていたみたいなんです;
どうしたら良いんでしょうか?
↓DLL側のresource.hの一部
#define IDD_WINDOW1 102
#define IDD_WINDOW2 103
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 2000
0263デフォルトの名無しさん
NGNGNTサーバに自動でフォルダを作るプログラムを作ろうと思ってるんです
けど、アクセス権の設定が必要なんです。で、以下のどちらかができ
れば、良いのですけど..。
1.フォルダを作成した後、任意のユーザにフルコントロールのアク
セス権を与える。
2.任意のユーザでフォルダを作成する。
よろしくお願いします。
0264トリッキーの1
NGNGOWLとか出てくるかと期待していたけれど(笑)
>>260
過大評価サンクス(笑)
ダイアログベースだと、例えばグラフの出力なんかがちょっとトリッキーになってしまうので、
あまり好きではないんですよ。
MFCのWizardで、CFrameWndを使わないものがあれば最高なんですけれどね。
>>261
そうなんですが、その場合Wizardが狂ったコードを出力するので
(関連づけられていないViewが作成されて、ASSERTで飛ぶ模様)
その程度ならばDummy Documentを介しても手間はほとんど変わらないし。
Wizardを使うなら、素直にDocument/Viewを使っておくのが無難そうです。
0265デフォルトの名無しさん
NGNGミューテクスで同期させることは可能ですか?
0266デフォルトの名無しさん
NGNGでもカーネルオブジェクトって(他のプロセス固有な手段と比べて)遅い様だけどタイマーの精度は大丈夫?
CriticalSectionに変更できるなら、そうした方が良いんじゃないかと。
0267デフォルトの名無しさん
NGNGくりてぃかるでいってみるよ
タイマーの精度・・・いまいちのような気が
0268デフォルトの名無しさん
NGNG単純にSetWindowLongでTBSTYLE_FLATを追加しただけだと、
上下に余白ができるんで、これを回避したいんです。
例としてはHTMLヘルプとかiriaのツールバーみたいな感じです。
ボタンの縦サイズ=ツールバーの縦サイズ
みたいなスタイルにしたいのですが。
0269デフォルトの名無しさん
NGNGIMEの制御の方法教えて。
自分のプログラムのウィンドウ上の指定した座標に文字入力ウィンドウ出して
入力された文字を漢字変換して変換した後の文字を受け取るみたいなの
「ペイント」で文字入力するときの処理と同じやつ
IME全然知らないドキュソでも分かるようなものきぼ〜ん
できれば解説してるサイトやサンプルコード付きよい。
可及的速やかにお願いモーニング!
0270デフォルトの名無しさん
NGNGそんな虫のいい話はないぞ。
とりあえず、これはどう?
http://www.ainet.or.jp/~inoue/im/win32.html
0271トリッキーの1
NGNGAPIならEDITをスーパークラス化して使うのが一般的です。
IMEはあまり関係ありません。ふりがなを上に打つならば話は別だけれど。
0272269
NGNG0273269
NGNG意外と簡単だった。
てっきり初期化とかもっと複雑化だと思ってた。
ところで追加質問なんですけど入力中の文字の長さってどうやって取得するんですかね?
「ペイント」や「メモ帳」では入力済みの文字列の途中に新規にIMEで文字を追加する場合
IMEで入力中はすでにある文字列の上に描画され確定後に文字列の間に挿入し再描画してますが
「ワードパット」などではIME入力中にリアルタイムに挿入後の文字列を計算し再描画してます。
入力中の文字列は取得できるので自分で文字列の長さを計算すればいいですけど
複数行に折り返された場合どこで折り返されるか分からないため(一応計算で求められると思うけど)
自分で計算するのはダルそうです。
IMEから直接入力中文字の長さ(ピクセル単位)を取得する方法ないですか?
こういう質問は2chじゃなく本格的なMLで聞いた方がいいですかね?
0274デフォルトの名無しさん
NGNG2chをなめるなよ〜 といっても俺はわかりません。
力になれなくてごめんな。
0275トリッキーの1
NGNGIMEから現在入力中の文字を取ることが出来るので、
それを用いてGetTextExtentを使うと出来ないこともないです。
折り返されたらお手上げです。それを一般的に取得する方法は無いはずです。
しかし"一般に"、IME入力中にずるずると後ろにずれるタイプのプログラムは、
IME入力中の文字も自分で描画する必要があります(その方がスマートです)。
なぜかと言えば、IMEによって予期しない文字が足されることが多々あります。
(たとえばATOKは、表示は「入力文字+_」なので、文字数に1を足す必要があります)
だから、まともなプログラムならだるくても必ず自分で描画する必要があります。
自分で描画するんだから、計算もヘチマもありません。
#実際一番だるいのは、変換場所に応じて色分けすることなんですが。
#MSDNなどにも資料が全然ないので、Try&Errorで内部情報をさぐっていくしかありません。
0276デフォルトの名無しさん
NGNGC/C++はDOSや組込み系でばりばり書いてるんだけど
Windowsプログラムは一ミリも書いたことが無いし
右も左もぜんぜんわからんという私に適当な
Windowsプログラミングの入門書を教えてください。
0277デフォルトの名無しさん
NGNGまあいろいろつかってWindowsアプリを作ってます
もうVC4はアンインストールしてしまったんですが
たまにVC4付属のMSDNみたいなやつが読みたい時があります
VCBKS40.MVBというファイルを読むツールは存在しませんか?
0278デフォルトの名無しさん
NGNGIEのお気に入りのメニューみたいに、
ドラッグ&ドロップでメニューの位置を
変更するようにするにはどうしたらいいのでしょうか?
いろいろ調べてみたのですけど、わかりませんでした。
知ってる方います?
0279デフォルトの名無しさん
NGNG「プログラミングWindows」
通称ペゾルド本。定番だが、これに勝る入門書は今の所無い。ただしWin32APIオンリー。
MFCなら「MFCによるWindowsプログラミング」が良い。ただ順番として
API→MFCと進むのがベターか。
0280デフォルトの名無しさん
NGNGプログラミングWindows→MFCによるWindowsプログラミング
の順番がよろしい訳ですね?
0281デフォルトの名無しさん
NGNGもしかしてOfficeみたいにオンライン登録はインストール時のみ可能ってやつですか?
あと、MSDNだけ見たいときにいちいちVC起動するのが面倒なので直接MSDNを開きたいんですが、
ファイルが多すぎてどれが本体なんだか分かりません。
0282トリッキーの1
NGNGCをばりばり扱ってきた人であれば、APIから入門した方がわかりやすいでしょう。
そして「MFCによるWindowsプログラミング」は、実に良い本です。
私は以上の道筋を経てWindowsプログラマになりました。
#もっとも私の場合、必ず最初は他人のコードの改造からはいります。
#そのポリシーはN88BASICだろうがAPIだろうがMFCだろうが変わらないですけどね。
#他人のコードを読むのは、本当に勉強になりますよ(参考図書:プログラミングの心理学)
0283デフォルトの名無しさん
NGNGJeff Prosise著、マイクロソフトプレス
"Programming Windows with MFC Second Edition"
これのことですか?
0284デフォルトの名無しさん
NGNGその通り。First Editionは「MFCによるWindows95プログラミング」だった。
これを読破して、AppWizardやClassWizardに頼らずに組めるようになれば一人前。
Wizardを使って良いのは上級者,熟練者だけ。そこのところを間違えないこと。
0286269
NGNG>#実際一番だるいのは、変換場所に応じて色分けすることなんですが。
CandidateWindow が出ている状態での変換場所の取得はできましたが
出てない状態で選択位置が変更されたときの位置が取得できません。
開始位置は ImmGetCompositionString でカーソル位置を取得すればいいんですが
終わりの位置(範囲)の取得方法がわかりません。
変換場所の取得または変換中の文字の取得ってどうするんですか?
コンポジションウィンドウを消すのに
ImmSetCompositionWindow で CFS_RECT を指定して文字が表示できないくらい
小さな矩形を設定すれば消えますがもっとスマートな方法はありますか?
お願い教えて!
0287269
NGNG自己レスです。
>CandidateWindow が出ている状態での変換場所の取得はできましたが
>出てない状態で選択位置が変更されたときの位置が取得できません。
>開始位置は ImmGetCompositionString でカーソル位置を取得すればいいんですが
>終わりの位置(範囲)の取得方法がわかりません。
>変換場所の取得または変換中の文字の取得ってどうするんですか?
ImmGetCompositionString で出来ました。
使い方間違ってました。
>コンポジションウィンドウを消すのに
>ImmSetCompositionWindow で CFS_RECT を指定して文字が表示できないくらい
>小さな矩形を設定すれば消えますがもっとスマートな方法はありますか?
ImmSetCompositionWindow の矩形で横幅がマイナスの値で良いような気がしますが違います?
サイズ0だと何故か表示されるがマイナスだと消える。
それとコンポジションウィンドウが表示されない状態だと
CandidateWindow の表示位置を設定できるんですが
コンポジションウィンドウが表示される状態だと
CandidateWindow の位置を設定しても勝手にデフォルトの位置(変換文字の真下)に
移動されてしまいます。(一瞬設定した場所に表示されてすぐに移動される)
これって位置設定のタイミングが間違ってる?
設定する時ってIMEから何かメッセージ送られてくるんですかね?
まぁ表示されていない状態ならうまく動くのであまり関係ないですけど。
自分はMS-IMEなんですけどATOKとかだとIMEから送られてくる
メッセージって多少違ったりするんですかね?
MS-IMEでは動いてATOKじゃ動かないとか・・・
誰か教えて♪
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNGこういうメッセージが出てインクルードできないのですが、何故でしょう?
hed.hファイルはプロジェクトのHeader Filesの中にあるのですが・・・
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNGどうすればいいのでしょう?
0293デフォルトの名無しさん
NGNGとしていませんか?
#include "hed.h"
としてみてください。
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNGご迷惑おかけしました。289,291,293の皆さん、どうもありがとうございました。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG#define _UNICODEしたんですが、上手くいきません。
どうすればいいんでしょうか。
0299デフォルトの名無しさん
NGNG意味がわかりません。
0300デフォルトの名無しさん
NGNGシステムモニタってメモ帳から使えます?
と同じような発言だよ。
結論を言うと使えません。
0301デフォルトの名無しさん
NGNG肛門から小便だせます?
と同じような発言だよ。
結論を言うと使えません。
0302デフォルトの名無しさん
NGNGどこをいじったのか今となっては定かでないのですが、
ダイアログリソースの編集をしようと、リソースエディタにフォーカスする度に、
「ソースファイル(foo.h, foo.cp)のクラス"foo"は重複する挿入ブロックが存在します」
と警告ダイアログが出るようになってしまいました。
この警告ダイアログは何なのでしょう。そもそも挿入ブロックとは何なのでしょう?
0303297
NGNGWinプログラムからVBAのマクロを呼び出せますか?
(これもおかしいこと聞いてますか?)
0304デフォルトの名無しさん
NGNGShellExecute使ったらどうよ?
0305デフォルトの名無しさん
NGNGOLEオートメーション使えば出来るかな。
ちょっとメンドウだけど
0306名無しさん
NGNGVCでダイアログを表示したり、クラス型の宣言を行ったりしたときなのですが、
pDocTemplate = new CMultiDocTemplate( とか
CAboutDlg aboutDlg;
aboutDlg.DoModal();とか
この場合、pDocTemplateやaboutDlgのメモリを開放するようなコードは
無い、もしくは必要ないのでしょうか。
逆に、必要な場合というのは、どういう時で、どのような命令を実行すれば
いいのでしょうか。
0307デフォルトの名無しさん
NGNG0308SAGE
NGNG普通 new で作ったモノは delete で解放する必要がある。
が、pDocTemplate の場合、MFC側のどこかに既に解放用のコードが
入っているはずなので、わざわざ自分で書く必要はない。
後者の場合は普通に int a; とか書いたときと同じで特に何もする
必要はない。変数のスコープが終わったところでデストラクタも自動で呼ばれるし。
0309デフォルトの名無しさん
NGNGdeleteに関してよく問題になるのがCWnd。
MFCのソースから、CFrameWnd::PostNcDestroyやCView::PostNcDestroyを探して読んでみるべし。
0310302
NGNG>>305
ありがとうございます
OLEオートメーションはお手上げなんでShellExecuteを
使う方法はどうやるんですか?
ヘルプで調べても指定したファイルをオープンした後に
どうするか見当もつきません。
すいません厨房ですがお願いします。
0311306
NGNG>>307-309
ありがとうございます。
確かにint a;は、消さなくては・・・という気にはなっていませんでした。
(それも問題かもしれないけれども)ちょっと、リキ入れすぎで変に
なっているようです。
落ち着いてCFrameWnd::PostNcDestroyやCView::PostNcDestroyを読んで
みます。
0312302
NGNGVisualC++のコード上からVBAの
ActiveDocument.Shapes.AddPictureを呼び出したいのですが
それのやり方があれば教えていただけないでしょうか?
よろしくお願い致します。
0313デフォルトの名無しさん
NGNGの中でどのくらいファイルを分割するものでしょうか?
オリジナルのライブラリ以外全部一つのファイルなので
数千行になったりするものもあるのですが、人に見せた
ら「はぁ?」みたいな顔をされました。
0314デフォルトの名無しさん
NGNGその関数のジャンルごとにとりあえず分けなさい
ファイルの名前もそれに付随した名前にする
例えばファイル関連ならfile.cとか(これはあくまで例)そんな感じで
0315デフォルトの名無しさん
NGNG>ActiveDocument.Shapes.AddPictureを呼び出したいのですが
Wordのタイプライブラリを探して、
#import "タイプライブラリ名"
タイプライブラリを探すのは、VBの参照設定画面を使うのがお手軽。
0316デフォルトの名無しさん
NGNG2枚の画像を重ねて表示するとき、
たとえば黒の部分だけは透明ということにして
下の画像を残すような処理はどうすればいいですか?
0317デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG(例えばメインダイアログで3と設定したら、
サブダイアログにEDITが3つ作成されているっていう事をしたい!)
0320デフォルトの名無しさん
NGNGアプリケーション側から特定項目のデータの表示を更新する方法がわかりません。
なにか、良い方法内でしょうか?
0321デフォルトの名無しさん
NGNGSetTimerが使えなくなってしまいました。
なんとか使う方法はないでしょうか。
0322デフォルトの名無しさん
NGNGVCを色々と触ってみているのですが、メニューバーの「編集」の
「コピー」「切り取り」「貼り付け」は自分でコードを書きなさい・・・と
いうようなことが、ヘルプに書かれてあるのですが、さっぱりわかりません。
文字列の切り取り,コピー,貼り付けをクリップボード経由で行うには
どんなコードが必要なのでしょうか。
C++がわかっていれば、おそらく恐ろしく簡単なものなのではないかと、
推測しているのですが、私にはさっぱりわかりません。
どなたか、教えて下さい。
0323322
NGNG複数行入力可能なエディットボックスをフォームに置いているので、
CTRL+X,C,Z,Vを可能にしたいのです。
フォームビューを表示してるだけなんだけど、この方法に問題があるのだろうか。
0324322
NGNGCOleClientItemってのを使わないとダメみたいですね。
(その使い方が判らない状態だけど)
0325デフォルトの名無しさん
NGNG俺も詳しくないんだけど、エディットボックスにたいして
CEdit::Cut()、CEdit::Copy(), CEdit::Paste()を使えば
CTRL+X,C,Vはできるかも。
CTRL+Zのアンドゥは自分でガシガシ書くしかないみたい。
0326名無しさん
NGNGエディットボックスが多い場合に問題かな
なんていってる俺も今までにそういうのやったことないけど
0327ひよこちゃん
NGNGVC++6でコツコツと簡単なゲームプログラムを作成していました。
ソースの行数も4000行近くなってきたのですが、行数が増えるにつれ
やたらと処理が重くなるのです。実行したプログラムの処理ではなく、VC++
自体の処理がです。一つのソースファイルにまとめて書くと言うこと自体が
初心者かもしれませんが、分割する以外に対処などはありますでしょうか?
0328
NGNG素直に分割しなさいよ 分割の仕方を学びなさい
0329矩
NGNGフォームのクラス内にメインフレームのメニューに関する
ハンドラを置いて、そのハンドラの中で、
フォームのエディットボックスのポインタで
Copy()
とかを呼び出してやれば良いんじゃないですか
0330デフォルトの名無しさん
NGNG0331初心者
NGNGインクリメンタルコンパイルがうまく行っていないのでは?
もしくはソースの依存性が高くて一部の変更が全てに影響して、
実質リビルド状態になっているとか。
0333デフォルトの名無しさん
NGNG>一部の変更が全てに影響して
そりゃそうじゃん
>>327
>一つのソースファイルにまとめて書くと言うこと自体
っていってるし
0334質問
NGNG0336デフォルトの名無しさん
NGNGそのようなプログラムは原理的にVC++では不可能です。
まず、VBの入門書をよく読んでみましょう。
0337デフォルトの名無しさん
NGNGなんで?GetWindowTextで文字列取ってきて、それをparseすりゃ良いだけの話だと思うんだけど?
0338デフォルトの名無しさん
NGNGOutLook Expressのメッセージ本文のデータを取得する方法は
どうやるのでしょうか?MAP〜以外のやり方があったらお願いします。
0339デフォルトの名無しさん
NGNG氏ね
インクリメンタルコンパイル/リンクしらね−のか?
関数単位でやるからソースのでかさは関係ない
0340デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGんなわけないって。それじゃ VC++ でインタプリタ作れない
じゃん。
>>334
コンパイラ理論とか言語理論に関する本を買ってきて読ん
でください。ドラゴンブックが定番。
また、少し古いですが「UNIX プログラミング環境」とい
う書籍に yacc を使った関数電卓の実装方法が取り上げら
れています。
# Win32 なら Excel あたり COM 経由で呼び出して、そっ
# ちに計算させるのもアリか?
0343デフォルトの名無しさん
NGNGあきらかに、336はネタだろ。
0344名無しさん
NGNGエディットボックスのコピー,カット,ペースト,アンドゥが解決しました。
FormViewにOnEditCopyを追加して(こういうのをなんて言うのか判っていませんが)
次の記述で、できました。
void CTestForm::OnEditCopy()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
CEdit* ed=(CEdit*)GetFocus();
ed->Copy();
//Copy(),Cut(),Paste(),Undo()で、それぞれの選択範囲がクリップボードへ
}
>>325,>>329さんの、言われていたことに、非常に近いコードだと思っています。
ありがとうございました。
これって、現在フォーカスのあるエディットボックスのポインタを
CEdit型の変数edに代入し(これも何か言い方があると思うのですが
判りません)、そのエディットボックスのCopy()を呼び出す(これまた、
言い方があると思うのですが)という動作と考えてあっていますかね・・・。
0345名無しさん
NGNGVC++初心者用スレができたので、私はそっちに行ったほうが
正解ですね。
0346デフォルトの名無しさん
NGNG大した人数もいないのにこんなに分けて意味あるのか?
0347名無しさん
NGNGどっちに行けばいいのやら・・・ウロウロ
内容次第ですかね・・・。
(自分の質問が、どっちに含まれるかわからない初心者ですが)
0348名無しさん
NGNGこれって、なにかDestroyしわすれているのでしょうか?
0349デフォルトの名無しさん
NGNGDestroyじゃなくてdelete
0350デフォルトの名無しさん
NGNG>インクリメンタルコンパイル/リンクしらね−のか?
>関数単位でやるからソースのでかさは関係ない
333です
そーなんだしらんかったっす
一つ利口になりました
0351デフォルトの名無しさん
NGNGnewがbad_allocをthrowするようにするためにはどうしたら良いのでしょうか?
CRTのソースを見ると、bad_alloc周りのコーディングもしてあるようですが?
0352デフォルトの名無しさん
NGNGthrow bad_alloc;
0353デフォルトの名無しさん
NGNG送信側で
(1)socketでソケットの生成
(2)inet_addr、gethostbynameで送信先の検索、指定
(3)送信データの作成
(4)sendtoで送信
として、
受信側では、
(1)データを受け取ったら
(2)socketでソケットの生成
(3)recvfromで受信
(4)受信データの表示
としようと思います。
そこで受信側の
(1)のデータを受け取ったら
という部分は、何を使ったらデータを受け取った事を確認できるのですか?
教えてください。
またこの仕組みに改善点があったら教えてください。
0354デフォルトの名無しさん
NGNGどうかも分からん、と思う、今日この頃。
0355デフォルトの名無しさん
NGNGselect() WindowsならWSAAsyncSelect() winsock2なら、WSAEventSelect()を
調べてみるがよろし。
0356COM超初心者
NGNG#IIS Admin Object の使い方が全然わかりません。
0357デフォルトの名無しさん
NGNGそれ私も知りたい・・・
IIS Admin Objectってあるんだ、ちょっと調べてみる。
0358356
NGNG参考までにおいらが調べたことを書いておきます。
1.アプリからIISの設定をするには、「IIS Admin Object」という COMオブジェクトにアクセスするらしい。
2.VS6 のMSDNで「Enumerating Keys and Data」にサンプルらしきものがある。
が、単純にコンパイルすると下記のエラーが出る。
error LNK2001: 外部シンボル "_CLSID_MSAdminBase_W" は未解決です
error LNK2001: 外部シンボル "_IID_IMSAdminBase_W" は未解決です
3.(NT4.0 OptionPack の場合)\Winnt\System32\inetsrv\adminsamples\mkwebdir.vbs
にWSH のサンプルがあるが、VC++ で同じ事をやるにはどうすれば良いかわからん。
と言ったところです。
0359デフォルトの名無しさん
NGNGできますか?
0360デフォルトの名無しさん
NGNG例えばボタンを押したらDIRコマンドを発行。という具合です
で、VIEWにDOSプロンプトの結果を反映させたいのですが
DOSプロンプトの文字列を受け取る方法はあるでしょうか?
0361デフォルトの名無しさん
NGNGpopen じゃ駄目?
0362デフォルトの名無しさん
NGNG( ・∀・)< ここ、あんまし賑わってないね。
_φ___⊂)__ \_______________
/旦/三/ /|
| ̄ ̄ ̄ ̄ ̄| |
|熊本みかん|/
0363dll
NGNGdll参照するソフト作るとしますが、
始めに新規作成で空のdllつくります。
次にdllのコードを入力し、ビルドしますが、
ここで、実行するexeを聞かれますが、
まだ、本体作ってないのでキャンセルします。
そうすると、libファイルが作成されませんがどうしてですか?
defファイルは自分で新規作成テキストを.defで保存すればよいのでしょうか?
ちなみにVC6をつかってます。
どうぞよろしくおねがいします。
0364デフォルトの名無しさん
NGNGdefファイルを使うやり方もあるが、説明が面倒くさいので、
↓でも見てやってみてちょーだい。
http://tools.geocities.co.jp/SiliconValley-SanJose/2089/@geoboard/19.html
0365デフォルトの名無しさん
NGNGCのライブラリをC++でラップする必要があるんですが、
単純にMyLibクラスのvirtualメソッドにすればいいんでしょうか?
0366>365
NGNG公開してる時点でC風のインタフェースにするしかないと思うんだが・・。
0367デフォルトの名無しさん
NGNGそーでもないよ
0368デフォルトの名無しさん
NGNGたとえばMessageBoxを派手にしたりCreateFileを監視したいのです。
日本語の詳説やサンプルのソースファイルが見られる場所はないですか?
0369デフォルトの名無しさん
NGNGCreateRemoteThreadでdllを刷り込ませたり、
レジストリに常駐DLLとして登録したり、いろいろ方法あるけど?
0370デフォルトの名無しさん
NGNG0372超初心者
NGNG子windowに将棋盤を書こうと思い
Rectangle()を使っているのですが、
書けません。
メインwindowには描画できるのですが・・・
どうやったら描けるのでしょうか?
自分としてはhdc,hwnd,creatwindow()の辺り
の知識がほとんどないので、
その辺に問題があるのかなとおもっていますが・・・
0373デフォルトの名無しさん
NGNG0374なまお
NGNGhttp://web.kyoto-inet.or.jp/people/namao/index.html
0375368
NGNGレジストリへの登録とはどこになにを書き込めば良いのでしょう?
ポインタでも構わないのでご存じの方よろしくご教示くださいです。。
検索しようにも適切なキーワードが分からずサパーリです。
0376デフォルトの名無しさん
NGNGどうしたらいいんですか?
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNGCBitmapクラスにそんな関数はないみたいですが…
0379デフォルトの名無しさん
NGNGCreateBitmap
ヘルプ見れ
それからWindowsのbitmap操作は色々と面倒だぞ
DIBに直して自分で弄った方が良いかもな
0380379>378
NGNGメモリDC作ってそこから転送
0381378
NGNGそこからどうやってCBitmapに移動させるんでしょうか…
ビットマップボタン作りたいんですけど。
0382379>381
NGNGCBitmapは知らん。つーか忘れた。
codeguru行くか、'BitmapButton'で検索すれば?
0383379>381
NGNG0384379>381
NGNG0385639
NGNGGetPrivateProfileInt()と同じ働きをするように
他の何かでどうやってやれば構築できるのか
教えてください。
0386デフォルトの名無しさん
NGNGソース中で
CStringのGetBufferSetLength(n)やってるんですが
こういう場合は、
ReleaseBuffer(n)しなくてもいいんですか?
0387デフォルトの名無しさん
NGNG.NETまで待った方がいいですか?
0388デフォルトの名無しさん
NGNGもちろん、GetBufferSetLengthに渡した文字列長が正しい
と仮定した場合。将来のバージョンではどうだか知らん。
ReleaseBuffer の役割は、文字列長のセットと、末尾への
'\0' の付加だから。
0389376
NGNGCBitmap bmp,paibmp;
CDC memDC,paiDC;
bmp.LoadBitmap(IDB_PAI);
memDC.SelectObject(&bmp);
paibmp.CreateBitmap(41,66,1,8,NULL);
paiDC.SelectObject(&paibmp);
memDC.BitBlt(100,200,41,66,GetDlgItem(IDC_KONG1)->GetDC(),0,0,SRCCOPY);
いくらいじってみてもうまくいきません。一体どうすればいいんでしょうか。助けてください。
0390>389
NGNG結局、初心者向けページやcodeguruとか見に行って自分で調べるしかないと思うよ。
基本的なビットマップ操作はcodeguruとかのWebサイトでサンプル沢山揃うと思うけど。
あとは似た処理をしてそうなソース付きのフリーウェア落としてきて解析するとか。
最初から全部自作するのは凄い手間だから、完動するサンプルソースや
ライブラリから拡張していったら?
0391>389
NGNG結局、初心者向けページやcodeguruとか見に行って自分で調べるしかないと思うよ。
基本的なビットマップ操作はcodeguruとかのWebサイトでサンプル沢山揃うと思うけど。
あとは似た処理をしてそうなソース付きのフリーウェア落としてきて解析するとか。
最初から全部自作するのは凄い手間だから、完動するサンプルソースや
ライブラリから拡張していったら?
0392>389
NGNG結局、初心者向けページやcodeguruとか見に行って自分で調べるしかないと思うよ。
基本的なビットマップ操作はcodeguruとかのWebサイトでサンプル沢山揃うと思うけど。
あとは似た処理をしてそうなソース付きのフリーウェア落としてきて解析するとか。
最初から全部自作するのは凄い手間だから、完動するサンプルソースや
ライブラリから拡張していったら?
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNGツリーコントロール使い、エクスプローラもどきを習作しているのですが
ドラッグアンドドロップ時のイメージが上手く作成できませぬ。
色々探したのですがドラッグアンドドロップについて
記載した所が探し出せませんでした
何方かご存知でしたら、
また、この件を解説しているサイトがありましたらお教え願います
参考までに、現在マウス周りのコードは
void CMyTreeCtrl::OnBegindrag(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
m_pDragFlag=TRUE;//ドラッグモードON
SetCapture();
m_prevCursor = SetCursor(NULL);
m_DragImage.BeginDrag(0, CPoint(0,0));
m_DragImage.DragEnter(this, pNMTreeView->ptDrag);
*pResult = 0;
}
void CMyTreeCtrl::OnLButtonUp(UINT nFlags, CPoint point)
{
if(m_pDragFlag==TRUE){
m_pDragFlag = false;
ReleaseCapture();
m_DragImage.DragLeave(this);
m_DragImage.EndDrag();
SetCursor(m_prevCursor);
m_prevCursor = NULL;
}
CTreeCtrl::OnLButtonUp(nFlags, point);
}
void CMyTreeCtrl::OnMouseMove(UINT nFlags, CPoint point)
{
if(m_pDragFlag==TRUE){
m_DragImage.DragMove(point);
}
CTreeCtrl::OnMouseMove(nFlags, point);
}
という感じにしております。
0395教えてください
NGNGそのあと入力された数字に応じて
データを表示するプログラムなんですが
動きません。どこがだめか教えてください。
/*動物園*/
#include <stdio.h>
#define number 10
struct zoo{
char syurui;
char namae;
int nenrei;
int taijyu;
}
main()
{
struct zoo doubutu[number];
int n,i,j;
printf("何種類か入力してください\n");
scanf("%d",&n);
for (i=0;i<n;i++){
printf("動物の種類を入力してください\n");
scanf("%s",&doubutu[i].syurui);
printf("そいつの名前も入れてくれ\n");
scanf("%s",&doubutu[i].namae);
printf("年はいくつやねん\n");
scanf("%d",&doubutu[i].nenrei);
printf("そいつ何キロやねん\n");
scanf("%d",&doubutu[i].taijyu);
}
printf("何番目にすんねや\n");
scanf("%d",&j);
j=j-1;
printf("%s\n",&doubutu[j].syurui);
printf("%s\n",&doubutu[j].namae);
printf("%d\n",doubutu[j].nenrei);
printf("%d\n",doubutu[j].taijyu);
}
詳細きぼ〜ん
0396添削人
NGNGzoo::namae は1バイトのデータしか格納できない。
char namae[256];//のように適当な配列にするか
char* namae;//のようにポインタにして
//適宜メモリの確保と解放をやるべし。
0397教えてください
NGNG[数字]にすることにより、問題解決しました。
また、わからない事できたらかきこしますので
よろしくお願いします。
ありがとうございました。
0398教えてくだっさい
NGNGほかのアプリのウィンドウ(なぜかフォルダウィンドウはOKです)のアイコンがGetIcon()で取得できません。
ためしにWM_GETICONメッセージに反応してアイコンハンドルを返す
プログラムを作って実験すると取得できます。
またSpy++で適当なアプリのウィンドウを調べてみるとちゃんとWM_GETICONに
反応しているようです。
タスクマネージャーやタスクバーはどうやってアイコンを取得しているのでしょうか?
教えてください。
0399>398
NGNG0400400
NGNG0401教えてくだっさい
NGNG情報ありがとうございます!
0402デフォルトの名無しさん
NGNGすげー便利だと思って使いまくってたから愕然としたんですが、俺は今までとんでもない事をやってたんでしょうか。
0403デフォルトの名無しさん
NGNG0404394
NGNG当初、BeginDragで
イメージ作ってくれてるのかと思ってたんですが
よくよく考えたらツリーと関係結んでないことに気づき
イメージ作ってから表示したら一発で出てくれました。
阿呆すぎる、、、、
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGVCプログラマって基本的にMFCを使用しているのですか?
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG最初はMFCなぞ使ってはならん。コンソールアプリを作って楽しむべし。
AppWizardなんてもっての他だ。
コンソールで一通り遊んだら、MFCを使って遊ぶべし。それが一通り終わった頃には
AppWizardが生成したソースも難無く読めるであろう。
頑張って遊ぶがよし。最初から気合入れると疲れるぞ。遊ぶ気持ちを忘れずにな。
0409デフォルトの名無しさん
NGNGclass a
{
public:
void (*pmemfunc)();
};
class b
{
public:
b();
int retdata();
a adef;
};
b::b()
{
adef.pmemfunc = retdata; // エラー
}
このような関数を渡す処理を行おうとすると、型キャストのエラーが出ます。これを解消する方法はないでしょうか?
0410RIP_MAPIRO
NGNG関数へのポインタへの型チェックは、明確にしなければならない。
この場合2通り考えられる。
1) void (*pmemfunc)(); -->int (b::*pmemfunc)();
2) void (*pmemfunc)(); -->void (b::*pmemfunc)();
int retdata(); --> void retdata();
戻り値が void と int を混在させる必要がある場合素直に別の関数と
割り切ってそれぞれ作るしかないでしょう。
0411デフォルトの名無しさん
NGNGならないのでしょうか?GetDC関数では駄目なのでしょうか?
もしかして有効化と関係あるのでしょうか。
0412デフォルトの名無しさん
NGNG0413409
NGNGありがとうございます。で、すいません。質問のとき、intとvoidを混在させてしまいました。使用しているのはvoidです。ところで、もう一つよろしいでしょうか。
class a
{
public:
void (b::*pmemfunc)();
};
の状態で、pmemfuncが実際の関数を指しているのか調べるために、コンストラクタでNULLを入れて、ある関数中で
スコープ:a
if (pmemfunc != NULL) pmemfunc();
とするとコンパイラエラーが出ました。これはどういうことなんでしょうか。
0414デフォルトの名無しさん
NGNGを使わずに同じ働きをする関数を探しています。
そのようなものってありますか?
0415RIP_MAPIRO
NGNGということは class a の メンバ内ということですな。
さて例えば関数へのポインタ
void (*Hoge)();
と宣言された Hoge をコールするときは
(*Hoge)();
ということは
すくなくとも pmemfuncをコールするときは
(*pmemfunc)();
とせねばならないことはよろしいか?
しかしこれでもエラーが出る。
なぜなら b::*pmemfunc と宣言されているので class b の実体から
参照されなければならないことになる。
よって この場合 class a にメンバ変数 class b へのポインタを用意
してやってそれからコールする。
例えば以下のように
class a
{
public:
a(){
pmemfunc = NULL;
m_Pointer_b = NULL;
}
Call_pmemfunc(){
if(m_Pointer_b != NULL && pmemfunc != NULL ){
(m_Pointer_b->*pmemfunc)();
}
}
void (b::*pmemfunc)();
b* m_Pointer_b;
};
class b
{
public:
b(){
adef.pmemfunc = retdata;
adef.m_Pointer_b = this;
}
void retdata();
a adef;
};
0416デフォルトの名無しさん
NGNGウィンドウに無効な領域(書き直すべき領域)があって、
ほかにこれといったメッセージがないときに、
GetMessage すると、WM_PAINT が帰ってきます。
BeginPaint, EndPaint をしないと、永遠に WM_PAINT が
着続けて、そのたびに再描画していると無駄に CPU パワーを
食ってしまいます。
0417413
NGNGありがとうございます。
ついでにもう一つ。上記例で、クラスaから派生されたクラスの関数を渡したい場合には、そのクラス名がわからないと無理なんでしょうか。これからの拡張性を考えると、親クラスだけがわかっていて子クラスがわからない場合でも子クラスの関数アドレスが渡せると便利だと思うのですが…。というか、それができないと困る場合が…。
0418教えてください
NGNGだれかサンプル作ってください。
1、入力ファイル
1、データを格納する配列数は100.
2、データには「連番、社員NO、部署番号」が存在する。
2、読み込んだデータを社員NOと部署でソート(昇順)する。
1、第一ソートは部署番号
2、第二ソートは社員NO
3、ソート方法は各自で調査、決定する。
3、ソートした結果を画面に出力。
ファイルサンプル ソート結果イメージ
1,2154,556 4,3365,55
2,857,102 3,559102
3,559,102 2,857,102
4,3365,55 1,2154,556
5,3398,556 5,3398,556
このような物なのですが、関数を使って解きたいのですが。
誰かよろしくお願いします。
回答、きぼ〜ん
0419教えてください
NGNG最後のところがうまく表示できなかったんですが
よろしくお願いします。
0420デフォルトの名無しさん
NGNGそういう用途ならば、メンバ関数ポインタなど使わず、
インターフェースクラスをつくって、そのポインタを
貰いましょう
0421ななし
NGNGキー入力を監視するプログラムを作ってます。
そこで、hook使ったのですが、
hookだと監視はできます。
文字の入力ができません。
これを回避する方法はありますか?
0422デフォルトの名無しさん
NGNGWM_PAINTメッセージ処理の中にGetDCをBeginPaintの代わりに
書くと、プログラムがおかしな状態になります。そこでGetDCの前に
ValidateRect関数でクライアント領域を有効化すると、上手く描画
できます。これはナゼ
なんでしょうか?
0423416
NGNGネタ?
416を読み直してもわからないようなら、もう一度聞いて。
0424RIP_MAPIRO
NGNG>クラスaから派生されたクラスの関数を渡したい場合
質問の流れからすると
"クラスbから派生されたクラスの関数を渡したい場合"
のような気がするが・・・。
どのような実装を目指しているのか、いまいちつかみ所が
分からなくなってきた。ただ言えることは Cライクな C++
にはまりそうな気がする。今一度 設計を検証することを
オススメする。
もし他人のクラス群の拡張なら、思い切ってクラス設計を
一からやり直した方が速いかもしれない。
0425412>422
NGNGで412だけど、あれ、適当。すまん。つーか言葉が足りなかったみたいね。
WM_PAINT処理するならBeginPaint/EndPaintは呼ばなきゃだめだよ。
その中でGetDCは別に呼んでも構わないよ、って412を解釈してね。
あとはもう説明面倒だから416さんにでも聞いてね。
0426デフォルトの名無しさん
NGNGぢつは…ワタクシもともとDelphi使いでして。MFCをDelphiライクにコンポーネントクラスで使えるといいなぁと思っていたのです。そのため、
CEdit (継承 -> ) TEdit
CButton (継承 -> ) TButton
などとして、プロパティを使ってアクセス性の高いクラスを作っていたのです。その目的のうちの一つとしてイベントハンドラを渡せると良いなと思いまして。
そこで、TNotifyEventクラスを作りまして。これは、
void (*OnButtonClick)();
などのメンバ関数を持っています。
このTNotifyEventクラスとCEditなどのMFCクラスとを多重継承させてTEditクラス等を作ってみたのです。MFCクラスの親CWndクラスのDefWindowProcメンバを使用してメッセージ分岐処理を行っています。ところが、CFrameWndクラスを継承して作ったメインウィンドウクラスにOnButton1Click()メンバを作り、
Button1.OnButtonClick = OnButton1Click;
などとやりたかったのですがスコープの問題でうまくいかなかったのです。
実際に、これらVCLもどきはライブラリとしてまとめると再利用性があるかと思ったのですが、前回の解決方法ではうまくいきません。
そういう目的があったのですが…説明不足で申し訳ありませんでした。
0427デフォルトの名無しさん
NGNG例えば、ウィンドウ上にダイアログがあって、そのダイアログが消えると、描画しなければいけない空白がウィンドウ上にできる。
こういうのを無効領域っていうの。
この無効領域があると、WM_PAINTが自動的に発行される。
WM_PAINTがきたときにこの無効領域を有効化しないと、無効領域が残ったままなので、416の言うようにWM_PAINTがずっと発行され続けて表示がおかしくなってしまう。
無効領域を有効化する方法は3種類。
1、BeginPaint()を呼ぶ
2、ValidateRect()、ValidateRgn()を呼ぶ
3、WM_PAINTを処理しないで、そのままDefWindowProc()を呼ぶ。
の3つ。WM_PAINTがきたときは、この3つのうちどれかを実行しないと表示がおかしくなる。
422のケースで、ValidateRect()を呼んでうまくいったのは、2を実行していたから。
普通は、「無効領域がある」=「描画しなければいけないところがある」ってことなので、BeginPaint()で描画と有効化を一度にやる。
それと、BeginPaint()は「無効領域以外の部分は描画できない」という特徴があって無駄な描画が減るので、ちらつきが少なくなるよ。
0428デフォルトの名無しさん
NGNGdelphi流のメソッドポインタですか。
一応C++でも不可能じゃないけど、あんまり綺麗には書けない
(のでdelphiに戻ったほうがよい(笑))と思ったもんでした。
以前なんかの折に書いた落書きが以下です。
有能な人が書いたら遥かに綺麗になるのかも知れないけど。
つーか書いてください優秀なかた(T_T)
そういやメソッドポインタって、JavaとJ++の戦争のネタの一つでしたよね(笑)。
面白い概念だとは思いますよ。うん。
CServerがDelphiでいうコンポ、CClientがForm(笑)のつもりです。
template <class MethodServer> //MethodServerてのは「メソッドを持ってる奴」ってなニュアンス
class CMethodPointer { //この型をメソッドポインタと呼ぶのってもしかしてdelphi流でしょか?
private:
typedef void (MethodServer::*Method)();
MethodServer *receiver;
Method method;
public:
void set(MethodServer *rcv, Method mth){receiver=rcv; method=mth;}
void exec(){(receiver->*method)();}
};
#include <stdio.h>
class CServer {
public:
void f1(){puts("f1");}
void f2(){puts("f2");}
};
class CClient {
public:
CMethodPointer<CServer> mp1;
};
int main()
{
CClient cl;
CServer sv;
cl.mp1.set(&sv, &(CServer::f1));
//これは出来れば勘弁願いたい書き方だ。目の前にある変数(sv)の型をなんで再び
//人間様が書かんとならんのだ?
cl.mp1.exec();
cl.mp1.set(&sv, &(sv.f2));
//これがお洒落だなあ。これ通るのってC++標準準拠なんでしょか?
//ホントはdelphiみたいに第一引数不要ならば嬉しいが、それは仕方ないつーことで。
cl.mp1.exec();
}
0429RIP_MAPIRO
NGNGなるほど。Delphiを使ったことはないけど、”MFCをコンポーネントクラスで使える
といいなぁ” には共感できる。私の場合そういう包括的なアプローチはあきらめて
オートメーション機能を使っている。細かいことをやりたいときはATL&COMを使う。
>メインウィンドウクラスにOnButton1Click()メンバを作り、
>Button1.OnButtonClick = OnButton1Click;
>などとやりたかったのですがスコープの問題でうまくいかなかったのです。
PreTranslateMessage のオーバーライドで解決する問題では?
0430デフォルトの名無しさん
NGNG親切なレスありがとうございます。
ただ、できれば今後アプリを作る中で楽したいので、結局現在以下のような手段で手を抜いております。
(1) TNotifyEvent中のメソッドポインタは、TButtonなどの親クラス(CButton)のさらに親クラス(CWnd)型で宣言しておく。
void (CWnd::*OnMouseMove)();
void (CWnd::*OnLButtonDown)();
等のように。
(2) TForm(ウインドウクラス。派生元はCFrameWnd)の実装を持つ、イベントドリブン用のメソッドは、普通にクラス内で宣言する。
class TMainForm : public TForm
{
...
TButton Button1;
void OnButton1MouseMove();
};
(3) このままだと、実際にイベントハンドラに実装関数を渡すときのキャストが面倒
スコープ TMainFormの関数中
Button1.OnMouseMove = (void (CWnd::*)())OnButton1MouseMove;
なので、defineマクロを使って誤魔化す…(<-ここがダメダメ)
#define NEFUNC (void (CWnd::*)())
この場合はスコープTMainFormの関数中
Button1.OnMouseMove = NEFUNC OnButton1MouseMove;
ですみます。
…やり方はちょっとセコイですけど、一応今後は楽にメッセージ処理が行えるなぁと思っています。ただし、残念ながら出来るだけ多くのメッセージをTNotifyEventクラスで処理させようとすると、Switch処理で馬鹿みたいに処理が長くなって、処理速度の低下につながるなぁとも思っているんですけど。ま、でも、そこまで大した損失じゃありませんよねぇ?(CのSwitch処理の機構はイマイチわからないのですけど。アセンブラクラスではGoto命令みたいな処理をやっているだけでしょ?選択肢が増えてもあまり関係ないような気もしますけど)
>>429 RIP_MAPIRO様
色々と何度もありがとうございます。
ただ、コンポーネント化という観点からは、PreTranslateMessageのオーバーライドでは全く問題解決にならないような気がするのですが…。ようするに、違う処理を行うボタンを貼り付けるたびに、そのそれぞれを新たなクラスとして継承・オーバーライドをする必要があるわけですよね。それとも、私の考え方違いなのでしょうか。よろしくご教授ください!
0431デフォルトの名無しさん
NGNGでも
GetFileVersionInfoSize()して
GetFileVersionInfo()して
VerQueryValue()して取得する。
という操作はCEでは、
GetFileVersionInfoSize()、
GetFileVersionInfo()、
VerQueryValue()の3つともサポートしていない
ので使えません。
どのようにして取得すればいいですか?
教えてください。
0432デフォルトの名無しさん
NGNGまぁ、メソッドポインタ型の変数が
字義どおりのメソッドへのポインタ自体だけじゃなく
対応するインスタンス(のthis)をも含んでくれている、
というのがdelphi系の美しさの肝なので、
それと同じに書けないという意味では
標準C++であれを真似るのは微妙に辛いですね。
というか、(C++で出来ないゆえに)メソッドポインタが知られていない、
それゆえdelphiのメリットを理解してもらえない、という悪循環が、
信者(笑)としては残念に思うところ。
イベントプロシジャの仕掛けは、メジャー(?)な言語の多くでは
直接サポートされていないので、色々なGUIツールキットは
それぞれいろいろなやり方で苦心していますね。
unix畑で流行している「Gtk」とか「Qt」とかの
イベントプロシジャの実現方法は、横目で見ておく
(=本屋で立ち読みとか(ぉ))と参考になるかも知れません。
ちなみにGtkは対象言語が生Cなので、解決策も一番安直です(笑)。
QtはSLOTとかいう概念を使う(マクロで実現してる)んだっけか。
他にもツールキットって随分たくさん有るんで、眺めると吉かも。
#そして結局、従来型言語では不便だ、という結論に至る…かも(笑)
Javaは、アダプタObject(のクラス)をいちいち作って介在させるんでしたっけか?
あれはComponent本体のClassをいちいち派生させなくて済む
という意味では旨いんですが、アダプタInstanceの所有権つまり
いつ誰がアダプタをdeleteするか?で、ガベコレのない言語の悩みに突き当たるっぽい(^^;
ところで、少し前に出た奴ですが、
>このTNotifyEventクラスとCEditなどのMFCクラスとを多重継承させてTEditクラス等
多重継承はちょっと違うんでないですか?
コンポーネントはEventオブジェクトを「所有」すべきだと思うのですが。
たとえば同じ型のEventを同時に複数持ちたくなったら、
継承じゃまずいのは確かですよね?
Edit1.OnClick
Edit1.OnDblClick
みたいな感じ。
所有させておいて、明示的に(=区別して)名前で呼び出すのが良いと思います。
>出来るだけ多くのメッセージをTNotifyEvent
>クラスで処理させようとすると、Switch処理で馬鹿みたいに処理が長くなって
あれれ?なんでそんなこと(=caseの嵐)になるんでしょう?
そんなことにならないのがイベントプロシジャの味噌だと
思っていたのですが…違いましたっけ???
0433RIP_MAPIRO
NGNG思いつきだけど。
PreTranslateMessageで親ウインドウ(以下"親")から子ウインドウ(以下"子")へ
メッセージを再配分する訳で、親のデータメンバに子のHWNDやら
HINSTANCE等の情報を動的にリストに確保してやれば良いのでは。
0434デフォルトの名無しさん
NGNG>HINSTANCE等の情報を動的にリストに確保してやれば良いのでは。
それってもしかして、
なんぼインスタンスの情報を持たせても、
それぞれの「挙動」の違いを表現できない、
ってことだったりしませんか?
0435元Delphi使い
NGNGいえいえ。TNotifyEventクラスは、それぞれのメッセージに対応するイベントプロシジャへのポインタを持っている状態であるんです。まだ、メッセージを調べ始めたばかりなので数は足りないのですが、今現在の状態ではTNotifyEventクラスは以下のような定義になっています。
class TNotifyEvent
{
public :
TNotifyEvent();
void (*WMMouseMove)(int state, CPoint mousepos);
void (*WMDestroy)();
void (*WMLButtonDown)(int state, CPoint mousepos);
void (*WMLButtonUp)(int state, CPoint mousepos);
void (CWnd::*WMLButtonClick)();
void (*WMRButtonDown)(int state, CPoint mousepos);
void (*WMRButtonUp)(int state, CPoint mousepos);
void (*WMRButtonClick)();
void (*WMCreate)();
void (*WMSetFocus)();
void (*WMKillFocus)();
void (*WMVScroll)();
void (*WMHScroll)();
void (*WMKeyDown)(WPARAM wParam);
void (*WMKeyUp)(WPARAM wParam);
void (*WMChar)(char getk);
void (*WMLButtonDblClk)(CPoint mousepos);
void (*WMRButtonDblClk)(CPoint mousepos);
void (CWnd::*WMButtonClick)();
LRESULT WM_SwitchExecute(UINT message, WPARAM wParam, LPARAM lParam);
CWnd* NotifyEventParent;
protected :
CPoint pm_ClickCursor,pm_Mouse;
BOOL pm_BTNState;
};
で、たとえばボタンコントロールの場合は、
CButton、TNotifyEventを多重継承の形で継承してTButtonを作っています。
class TButton : public CButton, public TNotifyEvent {...};
ここで、TButtonはDefWindowProcメソッドをオーバーライドしています。
このDefWindowProc中で、
TButton::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
WM_SwitchExecute(message, wParam, lParam);
CButton::DefWindowProc(message, wParam, lParam);
}
と、TNotifyEventのWM_SwitchExecuteを呼び出し、そのWM_SwitchExecuteは
TNotifyEvent::WM_SwitchExecute(UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_MOUSEMOVE :
pm_ClickCursor = pm_Mouse;
pm_Mouse.x = lParam & 0xffff; pm_Mouse.y = lParam >> 16;
if (WMMouseMove != NULL) WMMouseMove(wParam, pm_Mouse);
break;
case WM_DESTROY :
if (WMDestroy != NULL) WMDestroy();
break;
...
};
}
とやっております。現在はこれと430の方法で動かせるのですが。前回言ったswitch文が長くてどーたらというのは、上記WM_SwitchExecuteの部分です。また言葉足らずでもうしわけない・・・。
0436元Delphi使い
NGNGまだ変更作業をはじめたばかりなので、ほとんどの関数ポインタが(*...)()という表記になっていますが、実際は全部(CWnd::*...)()なる形になります。もうしわけない。
0437default
NGNGウィンドウの方に返すには
どうしたらよいですか?
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGイエーイ☆
0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGところがReleaseビルドしたものをVC上で動かすと異常終了するようになりました。
DEBUGビルドした物はちゃんと動くし、Releaseビルドでも直接起動すればちゃんと動くのですが、
ReleaseビルドしたのをVC上で動かすと不正なアドレスのメソッドを呼び出しているみたいで
落ちてしまいます。
DirectXを使っているので実行中にアドレスを確認することが出来ないんですが、
この原因はVCのバグ以外にどんなのが考えられるのでしょうか?
0442RIP_MAPIRO
NGNG0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNGSDKの本って出版されてるんですか?
ちょっとした本屋には無くて
やっぱり秋葉原のデッカイ本屋とかじゃなくちゃ駄目ですかねぇ?
0445初心者
NGNGとしたのですが、K6-2がpentiumと認識されてしまいます。
もっと正確にプロセッサーを調べるにはどのようにしたらよろしいのでしょうか?
0447444
NGNGぎゃー
VC系の本は全部MFCです
0448デフォルトの名無しさん
NGNGhttp://www.google.com/search?num=30&hl=ja&safe=off&q=CPU+%94%BB%95%CA+VC
こんなん出たぞ。
>>447
ハーバート・シルトやペトゾルドの本探して見れ。
0449ぽっぽ
NGNG0450ぽっぽ
NGNG0451>450
NGNG0452ぽっぽ
NGNG0453ぽっぽ
NGNG0454デフォルトの名無しさん
NGNG0455ぽっぽ
NGNG厨房板か!ここは?
0456ぽっぽ
NGNG0457デフォルトの名無しさん
NGNGいや、でも「解像度の変更」とかで引っかかる気がするけどなあ。
0458デフォルトの名無しさん
NGNG0459ぽっぽ
NGNGもう今日は寝る。また明日あげまくったる
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0464つねに名無し
NGNGしかし、コンパイル時によくわからんワーニングがでまくりやがる。
h:\program files\microsoft visual studio\vc98\include\xtree(118) : warning C4786: 半角文字が大杉って怒られたから略す : 識別子が '255' 文字に切り捨てられました (debug 情報内)。
とか、
warning C4786: こっちも略す: デバッグ情報で識別子が 255 文字に切り捨てられました。
とかなんだけど、これってなに?俺の使用方法が間違ってるん?
設定が悪い?VC++がわるい?MSがわるい?
0465つねに名無し
NGNG#include <map>
#include <string>
using namespace std;
main() {
map<string, long> Event;
printf("意味無し");
}
VC++は6.0でSP5まで入れてある。
0466デフォルトの名無しさん
NGNGおまえが悪い
なんか前にもこんなのがあった。二番煎じ
>わからない人
全角スペースのわかるエディターに貼ってみて。
0467デフォルトの名無しさん
NGNGワーニング娘。
プ
きっと「STAR WARS」も「すたーわーず」と読むんだろな。
0468デフォルトの名無しさん
NGNGVC++って、ものすごい投げやりなWarning吐くんだな...
シラナカッタヨ.....
0469デフォルトの名無しさん
NGNG全角インデントは、書いた奴が読みやすくしようとしただけだろ。
とりあえず、このスレで聞く前にgoogleに聞け。
http://www.google.com/search?q=STL+%8E%AF%95%CA%8Eq+%8Cx%8D%90&btnG=Google+%8C%9F%8D%F5&hl=ja&lr=lang_ja
0470デフォルトの名無しさん
NGNG面倒だったんでな。スマンね。
0471つねに名無し
NGNGさんくす
0472デフォルトの名無しさん
NGNGまったくわからん。だれか教えて。(ウイザードでつくってからわからない)
0473デフォルトの名無しさん
NGNG1.ファイルを読む方法がワカンナイ
2.16進数の並びにする方法がワカンナイ
4.テキストボックスに表示する方法がワカンナイ
あ、俺はどれもワカンナイから答えられねーや
0474デフォルトの名無しさん
NGNGまーいーや
0475デフォルトの名無しさん
NGNG海外のホテルで444号室があった以上に気になる。
0476スーパービギナー
NGNG本で「べき関数を行う関数」をやってるんですが、このプログラムの
意味がわかりません。
int beki(int a,int b)
{
int i,ans;
ans=1;
for(i=1; i<=b; i++){
ans=ans*a;
}
return ans;
}
何で
ans=ans*a
でべき関数ができるのかわかりません。それにiの範囲を指定してるのに
iを使っていなくていきなりansが出てくる。これも謎です。
どなたか解説してくれませんか?
0477デフォルトの名無しさん
NGNGたとえば、2の3乗っていうと、2*2*2 と2を3回かけるのね。
a=2, b=3 で、iが1,2,3と増えると、ループを3回回って、
2が3回掛け合わされるわけ。
って、これはVC++の質問じゃねーじゃん。
俺っておひとよし?
0478デフォルトの名無しさん
NGNGついこの前、x^nは1にxをn回かけたものって説明があったよね。
理論的には違うんだろうけど、x^0=1の説明の仕方としてはうまいと思った。
0479スーパービギナー
NGNG0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG虚数やん(w
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNGまずforループの使い方を勉強した方がいいと思われ。
0485デフォルトの名無しさん
NGNGか〜な〜り〜おひとよし
forループの使い方もそうだけど、べき関数が何を行うのか分かってないような気がするぞ
0486デフォルトの名無しさん
NGNGなにを意味しているのが良くわかりません。
どなたか教えてもらえないでしょか。
0487デフォルトの名無しさん
NGNGそこで編集しようと思ったのですが、「メンバ自動表示」の機能が
まったく動作しなくなってしまいました。
修復方法があれば教えていただきたいです。
0488デフォルトの名無しさん
NGNG>>482にもあるけど、forループでは、昔からカウント用に
変数 i を使うのよ。慣習的に。
i が使用済みのときは j, k, l... と続く。
もちろんカウンタの値に意味を持たせたいときは、ちゃんとした
変数を使うけどね。
0489デフォルトの名無しさん
NGNG左側のウインドウ?
0490デフォルトの名無しさん
NGNG個人的には
initiation(名)開始
で納得してる。
初期値=0でループって意味で。
適当だけどね
0491487
NGNGたとえばCStringだったら、
CString buffer;
buffer.
ってピリオド入力したらリストが表示されるじゃないですか。
あれが消えちゃったんです。
どうにか修復できないとやりずらくてかないません…
0492デフォルトの名無しさん
NGNGツール > オプション > エディタタブ > ステートメントの入力オプション
の設定はどう?
0493デフォルトの名無しさん
NGNGいやだって、6.0になって感動した記憶が・・・・
0494487
NGNG全部チェック入ってます。
>>493
VC++6.0にsp5だったかな?おそらく最新のサービスパックつけてます。
つけるまえからの問題だったので関係ないとは思いますが…
0495デフォルトの名無しさん
NGNGFORTRANの名残じゃない?
あれはI,J,K〜Nとかの真中あたりの変数名はデフォルトで整数で
ループカウンタに良く使ったらしい。
でなんでデフォルトで整数だったかと言うと
数学の行列とか数列でAij とか A0,A1〜An とか添字で良く使う文字
だかららしい。
0496デフォルトの名無しさん
NGNGa[0]='H';
bの配列に文字列として16進表示で代入する。
厨房なのでわかりません。
HELP ME。
0498デフォルトの名無しさん
NGNGsprintf(b, "%X", n);
0499デフォルトの名無しさん
NGNGそのとーり
0500デフォルトの名無しさん
NGNGFORTRANのとき、interger変数は i,j,k 辺りをよく使うので、
その名残だと思いこんでただ、オイラぁ。
そうじゃなかったのかハ。
0501デフォルトの名無しさん
NGNGカーソル下のウインドウのリージョンを太枠でハイライトする、
ここまでは FrameRgn() を使ってできましたが、
フォーカスが外れた時に描画した枠を消去する方法がわかりません。
今のところ、InvalidateRect() で無理矢理再描画させているのですが…
ちらついて汚い!
どなたかわかる方いらっしゃいます?
0502デフォルトの名無しさん
NGNG再描画すべき部分は枠なんでしょ?
だとしたらInvalidateRect()じゃなくてInvalidateRgn()を使え。
CombineRgn()を使って(大きい長方形)−(小さい長方形)で枠のリージョンを作って、それをInvalidateRgn()の第2引数で指定する。
そうすれば枠だけ再描画されるので、中はちらつかないと思う。
リージョンの使い方がわからなければ、ここを参考にしてくれ。
http://www.geocities.co.jp/SiliconValley-PaloAlto/5920/api_index.html
0503デフォルトの名無しさん
NGNGそもそもアキュムレータに入らない?
intとかの戻り値は普通に受け取れたんだけど
0504デフォルトの名無しさん
NGNG0505503
NGNG0506503
NGNGありがとうございました>>504様様
記念age
0507デフォルトの名無しさん
NGNGAVIファイルのオーディオ形式はPCM、22.025KHz、8ビット、モノラルです。
入力音声データをBYTE型で配列に蓄えているのですが、double型で配列に蓄えたいのです。
どうしたらこのようにできますか?
教えてください。
0508デフォルトの名無しさん
NGNGfor (i = from; i < to; ++i)
doublearray[i] = (double)bytearray[i];
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG一応手元の参考書を見ながらやっているのですが(参考書についてたソースはうまくコンパイルできました)、
参考書では1つのソースファイルに全て記述しているので、
自分のプロジェクトでは、WinMainやメインウインドウのウインドウプロシージャを
書いたものと、プロパティシートのダイアログ初期化とダイアログプロシージャを
書いたものを別々のソースに記述してみました。
(メインのウインドウプロシージャでのメニュー選択のswitchから別ソースにある
自作関数にインスタンスハンドルとウインドウハンドルを渡してプロパティシートを作らせる)
で、ビルドしてみたのですが、コンパイルは上手く行くのに
リンクでエラーが出てしまいました。
「error LNK2001: 外部シンボル "__imp__PropertySheetA@4" は未解決です」
「error LNK2001: 外部シンボル "__imp__CreatePropertySheetPageA@4" は未解決です」
と出ました。必要なcommctrl.hはインクルードしているし、リソースファイルにもダイアログの記述は
したのですが・・・・・
C++の仕様にまだ詳しくないのでその辺のミスだと思うのですが、
わかる方おられたら、ぜひ助言お願いします。
0512デフォルトの名無しさん
NGNG0513sage
NGNG0516511
NGNGありがとうございます!!
なるほど、スタティックリンクのライブラリの設定があったのかぁ〜・・・
厨房ですんまそんー
0517デフォルトの名無しさん
NGNGどうしたらいいのでしょうか?
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNGchar a;
short b;
char c;
int d;
};
なんでこれってsizeof(hoge)が12バイトなの???
自分の計算では10バイトなのに・・
VCの話題でなくてごめんなさい
0520デフォルトの名無しさん
NGNGわたしは確信してます。
でも一応、
「パディング アラインメント 詰め物」で検索してね。
0521519
NGNGいやでもマジなんですよ。ごめんなさい
aa
bb
cccc
dddd
で12バイトって事はわかるんですが(この時点でわかってない?)
最後のintをshortにすると
aa
bb
cc
dd
で8バイトなんですよね
うーむ?
そもそもスレ違いですね。逝ってきます
0522デフォルトの名無しさん
NGNG#をパディングとすると、ddddが4バイト境界で始まるように、
a#bbc###dddd
になっているんじゃないの?
0524デフォルトの名無しさん
NGNG数メガのデータ送っても 8640byte に分割されて届きます。
分割されないでGetできる方法はないものでしょうか?
0525デフォルトの名無しさん
NGNGUDP わかってる?
0526524
NGNGUDPではやってません。
CAsyncSocket か CSoket を使えば、送ったサイズで
分割されずにそのまま取得できると聞いたんですが。
デマでしょうか?
0527デフォルトの名無しさん
NGNGデバイスコンテキストは取得できますでしょうか?
0528名無しさん
NGNG0529名無し
NGNG8640byteに分割はされていても、結局は届くんでしょ?
そうじゃなかったらすまん。
でも、いきなり5MB届きましたーって言われんの嫌じゃない?
そこまで原因不明で帯域落ちたりすんのよ、多分。
逐次処理したいでしょ、ファイルに書きこむにしても。
0530デフォルトの名無しさん
NGNG例えば、「cl ○○.c」したらエラーが出て「edit ○○.c」を↑キーで戻って表示する・・・みたいな
くだらない質問でスマソ
0531デフォルトの名無しさん
NGNGDOSKEY
DOSKEY /INSERT
DOSKEY /?
を実行してみろ。
0532デフォルトの名無しさん
NGNGめちゃくちゃくだらない質問なのに、答えていただきありがとうございました
0533デフォルトの名無しさん
NGNG変わるんだけど(ショートカットのアイコンも)
それってどうやってやるんでしょう?
プログラムで真似できないのかなぁ??
0534524
NGNGレス、サンキューです。
やっぱ、TCPは暗黙の了解で約8Kってのがあるみたいですね。
まあ、でかい容量を送るときは、UDPとちがって必ず、
送った順に届くみたいだから、そこのところは便利なのかな。
やっぱTCP使ってみます。
0535デフォルトの名無しさん
NGNG少なくともWindows標準のでないといけないだろうけど、
どれを使えばいいかさっぱり。
システム標準のをダイアログで使う(フォント無指定)と
文字が大きくて不恰好だし、
かといって安易にフォント指定すると
そのフォントがユーザーのWindowsに入ってなかったら
オブジェクトの位置までずれてしまうし・・・・
MS UI GothicとかTahomaがいいかなと思うんだけど、
これって95/98/2000共通でしょーか?
それか、もしダイアログで、例えばスタティックテキストやチェックボックスの文字の
フォントサイズだけ変更する方法があれば一番うれしいんだけど。
知ってる人居たら教えてください。
0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNGフォントを変える必要に迫られたことがないので無指定。
>大きくて不格好
というのはセンスの問題以前の環境の問題があると思われ。
どうしても変えるなら、rcファイルの中見てみれ。
0538535
NGNG結局MS UI Gothic使って、なんか問題あったら
WM_SETFONT使ってみることにします。
ありがとうございます!
0539デフォルトの名無しさん
NGNGgetcharで入力させるにはどうしたらいいんでしょうか?
0540デフォルトの名無しさん
NGNGオプションの指定ではじかれてしまう
0541デフォルトの名無しさん
NGNGソースデバッグは無理でわ。
関数単位で BP あてたり、スタックトレース程度。
*.dbg 作っておくと最適化したバイナリでもデバッグできるが、
VisualStudio では簡単に作る方法は無かったと思う。
そういう点では統合環境は不自由で不便。使いにくい。
0542デフォルトの名無しさん
NGNGじゃ噂に聞く、リリースビルドにしたら動かなくなった
なんてヤツは原因追求が大変なんですね
0543デフォルトの名無しさん
NGNGcharだと一文字しかダメですの。
0544デフォルトの名無しさん
NGNGとりあえず、string だけど、用法注意
0545デフォルトの名無しさん
NGNG今から本読んでみるよ
0546541
NGNGそうそ、ありがち。
デバッグ用の printf 入れたら落ちなくなっちゃった…なんて。
そーゆーときは大抵、ポインタまわり。メモリ壊してる系の...。
0547デフォルトの名無しさん
NGNGchar *s="koredeiinndakke?";
あれ?これでダメだっけ?
間違ってたらごめん
0548BitBltってなんかかっこいいよね
NGNG方法はないでしょうか?API見たけど、どうもなさそう。。。
しょうがないから自分でメモリー上で反転させないといけないのかなぁ。。
0549デフォルトの名無しさん
NGNGエディットボックスの最後にテキストを挿入(追加)した場合
カーソルの位置も最後尾に移ってしまって、表示もテキストの最後に
移動してしまいます。
エディットボックスの表示とカーソル位置をそのまま維持し
テキストを末尾に追加するにはどうしたら良いですか?
0550543
NGNGどうも、アリガト
試してみます
0551fuck
NGNGビットマップのヘッダーの縦の長さ(具体的には0x16〜のDWORD値)
の符号を反転させれば上下逆さになりますね。まったくお勧めしませんけど。
SetMapModeで専用のデバイスコンテキストについて座標の取り方を
変更してもできそうですね。まったくお勧めしませんが。
0552BitBltってなんかかっこいいよね
NGNG左上隅(x1, y1) 右下隅(x2, y2)
pDC->StretchBlt(x1, y2, width, -height, &mdc, 0, 0, width, height, SRCCOPY);
ホントにアリガト。このfuck野郎!
0553名無しさん
NGNG0554名無しさん
NGNG0555デフォルトの名無しさん
NGNGif(a=b!=0){...}が、bが0の時に実行されるのは何故ですか?
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGint i,j;
j = 0;
if(i=j!=0){} }
0558デフォルトの名無しさん
NGNGあなたの勘違い
0559デフォルトの名無しさん
NGNG>あなたの勘違い
そうともいえないゾ!
aがこんなクラスのインスタンスだったらどうする?
class A {
public:
bool operator=(int b) { return true;}
};
0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNGダメ
0がfloatにプロモートされるだけ
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNGint main(){
int i,j;
printf("数字を入力してください\n");
scanf("%d",&a);
for(i=2;i<=a;i++){
for(j=2;j<=i;j++){
if(i%j==0){
break;
}
}
if(i==j){
printf("%d",i);
}
}
return 0;
}
とした時にこのscanfをgetcharにかえてプログラムを
作らないといけないんですが、どうすればいいんでしょうか?
ちなみに3行でできるらしいです。
0564563
NGNG0565デフォルトの名無しさん
NGNG素数とぜんぜん関係ねーだろーが。
0566デフォルトの名無しさん
NGNGそうですよね、実行されるわけありませんよね。
何故だ、何故だ? あ〜わかんなくなってきた。
どっかに別の原因があるって事ですよね。探してみます。
(でもウォッチではaもbも0なんだよなあ…VCのバグ?)
0567厨房と言いたきゃ勝手にしろ
NGNG文化祭用に。
何故ならVCの理解がわしの頭じゃできなかった。
・・・・・・・・別に。ひとりごとですよ。
VC難しすぎ。
0568デフォルトの名無しさん
NGNGCDocument::Seriallize()で
CBitmapオブジェクトに読み込んだ
画像を保存したい時ってどうやるんでしょうか。
以下ではだめですよね。
void CTestDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: この位置に保存用のコードを追加してください。
ar >> m_bmPicture; // ←CBitmapオブジェクト
}
else
{
// TODO: この位置に読み込み用のコードを追加してください。
ar << m_bmPicture;
}
}
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNGCBitmapオブジェクトに読み込んだ
画像を保存したい時ってどうやるんでしょうか。
以下ではだめですよね。
void CTestDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: この位置に保存用のコードを追加してください。
ar << m_bmPicture; // ←CBitmapオブジェクト
}
else
{
// TODO: この位置に読み込み用のコードを追加してください。
ar >> m_bmPicture;
}
}
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNGをぃをぃ、そんなことマジで聞いてんの? ハッカーの必需品だろ?
美人のねーちゃんの衣服越しに中身が覗けるところに決まってんだろっ!
APIMON なんか、もっとすごいんだから。もぅ、グフフもんだね、あれは。
0573571
NGNG0574デフォルトの名無しさん
NGNGファイルとしての保管方法自体は、
www.codeguru.comあたりにサンプルがあったような
気がするよ。CBitmapにはアーカイブストリームへ
出力するためのオペレータは実装されてないから
ファイルI/Oを自分でかくか、CBitmapの派生クラスで
<<と>>をオーバーライドせよ。
0575デフォルトの名無しさん
NGNGコンパイラが自動的に付け加えるってことでいいんですか?
0576デフォルトの名無しさん
NGNGそ。省略されてる。実体はライブラリの中にある。
MS-Linker は /subsystem:windows のとき、/entry:WinMainCRTStartup が
指定されたものと見なし、リンカはそれを解決することから仕事を始める。
まず渡された *.obj を探していき、なければ *.lib を引き渡された順、もしくは
見つかった順に探していく。MS-Linker はこんなかんじ。
でも棒国のリンカは OMF リンカなので少し違う。
スタートアップルーチンをアセンブルするときに、オブジェクトに
「ここにエントリポイントがあるよ」って埋め込んじゃう。
だから BC++ のリンカにはエントリポイントを指定するオプションがない。
どぅお、わかった?
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNG微妙に違う
0579デフォルトの名無しさん
NGNG0580名無し
NGNG作ったプログラムをどうやってフリーソフト化(?)
するか教えてください。
フリーソフトのソースってどこにあるの?????????
0581デフォルトの名無しさん
NGNGフリーソフトの意味
間違えてると思う…
0582OP
NGNGここで新たに質問させていただきます。
壁にぶちあたってます・・・
他でも質問したのですが解答がなくて・・・。
今回はActiveXで、LabelとEditとButtonのついている
Form型のOCXを作成しているのですが、ViewFormに
貼り付けて動作させようとしたところ、
エラーが発生して落ちてしまいました・・・。
見てみると貼り付けたコンポーネントの
ハンドルがとれていませんでした。
ViewFormの追加の仕方がわるいのでしょうか?
ViewFormを追加して作成したOCXのプロジェクトを
http://203.174.72.112/santa-p/VC++/
にて公開していますので、もしよければ
ダウンロードしてソースを見て
ご指導願えないでしょうか?
また、DLではVC++のソース一式がDLされます。
決してウイルス等ではありませんが、
DLは気が引けるという方もおられると思うので
PG内容をまとめたら説明したいと思います。
ただ時間の制限があり、説明が下手なのと、
説明したら長くなりそうで
実際のソースを見ていただいた方がいいかなと
思いましてDL方式を取らせて頂きました。
P.S.
ViewFormを追加して作成する前には
ActiveXのStaticフォームにAPIでボタン等を
内部的に作成して画面を作りましたがボタンを押下する
イベントをどのように表すのかわからなく
挫折してしまいました。もしこの方法でボタンの
押下処理方法がわかる方がいれば御教授お願い致します。
色々試行錯誤しているのですが、これ以外に
こんな方法でできるというものがあればどうぞ
教えて下さい。お願い致します。。。
開発言語:VC++ 6.0
OS:Windows2000
VC++のMFC ActiveX ControlWizard
http://203.174.72.112/santa-p/VC++/にある
OCXのプロジェクトはaasamp01.LZHというファイルです。
よろしくお願い致します。
0583OP
NGNG一応再度書きました。
P.S.
ViewFormを追加して作成する前には
ActiveXのStaticフォームにAPIでボタン等を
内部的に作成して画面を作りましたがボタンを押下する
イベントをどのように表すのかわからなく
挫折してしまいました。もしこの方法でボタンの
押下処理方法がわかる方がいれば御教授お願い致します。
色々試行錯誤しているのですが、これ以外に
こんな方法でできるというものがあればどうぞ
教えて下さい。お願い致します。。。
開発言語:VC++ 6.0
OS:Windows2000
VC++のMFC ActiveX ControlWizard
http://203.174.72.112/santa-p/VC++/にある
OCXのプロジェクトはaasamp01.LZHというファイルです。
よろしくお願い致します。
0584デフォルトの名無しさん
NGNGおまえ、なにムキになってんの?
SPY++ にうらみでもあんの?
それとも、自分も「グフフ」したいわけ? (藁
あぁ〜?
0585デフォルトの名無しさん
NGNG>作ったプログラムをどうやってフリーソフト化(?)
>するか教えてください。
今なら楽なのは自分でwwwサイト立てる
(気がねとか面倒はこれが一番少ないかな)か
vectorみたいなFREEソフト集めてる所
(のうち悪質じゃないところ)に登録するか。
FREEが無料の意味だと思うなら、
そのとき「これは無料だぜ」と書き添えればいいだけだし、
FREEが自由の意味だと思うなら、
そのときコンパイル済みバイナリだけじゃなく
ソースも添えればいいだけ。「好きに使えや」の一言も添えれば尚ヨシ。
日本じゃ著作権はモノ作れば自ずとつくそうなので、
深く考えなくてもこれだけで「フリーソフトを作れる」
とは言えるのでわないかと。
>フリーソフトのソースってどこにあるの?????????
どこって…
あなたが作ったソフトなら、
ソースはあなたの計算機のDiskにしか有りません。
他のこの世のドコでもなくあなたのDiskにだけ。
逆にいうと、自分のDiskが飛んだり家が火事に
なったりしてソース消失すると悔しいんで
バックアップ取りたいわけだが、
他人様のHDDにバックアップさせたいと思ったら
FREE(自由のほう)ソフトとして公開しちまうのはお得だ(w
場合によってはこれが一番安いかも(w
更に運がよければ、無料で友達が出来たり添削してもらえたり
敵が出来たり(w)するぞ。
0586OP
NGNGViewを追加するVC++でのActiveX作成方法をまとめました。
といっても作成手順の参考にさせて頂いた文章そのままですが。。。
1. CMyFormView の作成
1.1 リソースを作成
ResouceView/Dialog/右クリック/挿入で IDD_FORMVIEW を挿入
1.2 CMyFormView の作成
IDD_FORMVIEW が表示された状態で、Ctrl-W を押して、CFormView を
基底クラスとした CMyFormView を作成
2. CMyFormView の修正
2.1 コンストラクタ/デストラクタが protected になっているので public に
変更
2.2 CFormView::Create(...) も protected なので、次のソースを追加
---
public:
BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName,
DWORD dwRequestedStyle, const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext)
{
return CFormView::Create(lpszClassName, lpszWindowName, dwRequestedStyle,
rect, pParentWnd, nID, pContext);
}
---
2.3 CMyFormView::PostNcDestroy() をオーバーライドして処理をコメントに
する(delete this 動作の禁止)
****CMyControl.cppに追加したFORMVIEWのヘッダーをインクルードする。
0587OP
NGNG3. CMyControl への CMyFormView の追加
3.1 次の行を CMyControl のヘッダーに追加
CMyFormView m_MyForm;
3.2 次のコードを追加(WM_CREATE, WM_SIZE)
# ClassWizard 使ってください。
int CMyControl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
m_MyForm.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
CRect(0,0,0,0), this, 1/* means ID 適当 */, NULL);
return 0;
}
void CMyControl::OnSize(UINT nType, int cx, int cy)
{
COleControl::OnSize(nType, cx, cy);
if (m_MyForm.m_hWnd != NULL)
m_MyForm.MoveWindow(CRect(0, 0, cx, cy), TRUE);
0588OP
NGNG追加されるのですがそのViewの上に置いたコンポーネント(ButtonやEdit等)
のハンドルが取れずGetWindowText等の処理ができなく困っています。
何か手順がおかしいのでしょうか?
また、CMyControl 上に直接置く方法も考えましたがFormがあるわけではないので
どのように追加したらいいのかがわかりませんでした。
APIで画面を作成してもみましたがAPIで作成したボタンの押下処理をどこで判断するのか
これまたわからず挫折しました。。。
こちらの方法でもわかるという方がいたら御教授よろしくお願い致します。
また、この方法以外でも画面タイプのOCXの作成方法があるという方は、
作成手順、方法を教えて下さい。
どうぞよろしくお願い致します。
0589デフォルトの名無しさん
NGNGを指定するにはどうしたらいいでしょう?
なんか、毎回開くたびにワークスペースがあるディレクトリに初期化
されてしまうので…。
0590OP
NGNGこんなエラーでちゃったんですけど。。。
どうすれば修復できるのでしょうか?
コメントもとに戻してもエラーは出たまんまです。
さっきまできちんとコンパイル通っていたのに・・・
mfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 はすでに MSVCRTD.lib(dllmain.obj) で定義されています
mfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 は MSVCRTD.lib(dllmain.obj) で定義されています; 2 つ目以降の定義は無視されます
ライブラリ Debug/NMA03.lib とオブジェクト Debug/NMA03.exp を作成中
Debug/NMA03.ocx : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました
link.exe の実行エラー
0591デフォルトの名無しさん
NGNGCFileDialog::m_ofnをいじる。
OPENFILENAME構造体の内容はMSDNで調べれ。
0592589
NGNG自己レスですが
::SetCurrentDirectory()
でOKでした。
0593デフォルトの名無しさん
NGNGしてえ!今すぐ何が面白いのか教えろ。
0594デフォルトの名無しさん
NGNG0595デフォルトの名無しさん
NGNG色々調べたんだけどC++Builderのやりかたしか見つからなかったです
0596デフォルトの名無しさん
NGNGひとつで良いなら、開いておいて、移動から現在のURLをゲットすればOK。
まとめたやつは
C:\WINDOWS\Application Data\Microsoft\HTML Help\hh.dat
みたい。
0597デフォルトの名無しさん
NGNG多謝です!
0598デフォルトの名無しさん
NGNGう〜んと、一言で説明するのは難しいなぁ...。
説明しても、おまえには面白くもなんともないかも知れんぞ。
第一、ここじゃあ、スレ違い。
あるスレにちょこっと書いとくから、ソノ気があるなら探せ。
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGえっちねた板にある書き込みのことか?(w
0601ななし
NGNG作ろうと思いますが、PCカードに関して、
A/D変換に関しての有益な情報を
お願いします。
0602でふぉるとノ名無シサン
NGNGSPYをgooの英和辞典で調べると「偵察」となっている。
派生で、SPYHOLEというものがあって意味は「のぞき穴」。
で、SPY++は何をするものかというと、
Windowsをはじめとするソフトウエアの「穴」を探すツールで、
「グフフ」とできるかどうかは、「のそき穴」の先が何かによるでしょう。
0603デフォルトの名無しさん
NGNG何かの関数やマクロで使えるんでしょうか?
生WindowsAPIで使いたいのですが、よかったらどなたか教えてください。
お願いします
0604デフォルトの名無しさん
NGNGはい。
0605でふぉるとノ名無シサン
NGNG↓ここに見て
http://www.venus.dti.ne.jp/~takatomo/win32/getopenfilename01.html
>>593
上のページを開いて[NEXT→]を押して。
SPY++を使った例があるから
0606デフォルトの名無しさん
NGNG(左側にマイコンピュータとかデスクトップとかあるやつ)
はどうやって開くんでしょうか?
0607デフォルトの名無しさん
NGNGmemset(&open_file_name, 0, sizeof(open_file_name));
open_file_name.lStructSize = sizeof(open_file_name);
GetOpenFileName(&open_file_name);
0608デフォルトの名無しさん
NGNGアプリケーションでローカルなメッセージを定義したいときにはWM_APPを使えと
いうことは各種の資料を読んで理解したのですが、googleでWM_APPを検索して
出てきたサンプルソースコードは大抵「WM_APP+100」というように、100を加えて
いるのです。
これには何か理由があるんですかね??
0609デフォルトの名無しさん
NGNGない。
0610デフォルトの名無しさん
NGNG611 って、だれ?
↓おまえか? こたえが↑になるように、ちゃんと質問しろよ。 (藁
0611611
NGNG0613デフォルトの名無しさん
NGNG0614611!=609
NGNG0615歩
NGNGMFCに移行しようとおもいのですが、この場合、使用言語はC++でないと
いけないのでしょうか?MFC + C言語はだめなのでしょうか?
0616デフォルトの名無しさん
NGNGただ、MFC自体がC++だし、触らないわけにはいかないと思うけど。
既にSDKレベルでゲーム作れてるんなら
無理にMFCなんか触らなくてもいいじゃん。いいことないよ。
MFCじゃないと出来ないことなんて何も無いんだから。
0617デフォルトの名無しさん
NGNGよくMSのソフトで「Build 2560」とかでるじゃないですか。
なんとなくカッコイイんで自分のプログラムでもビルドするたびに
カウントアップするようなのを付けたいんですが、
これってVC6の統合環境での機能としてあるんでしょうか?
__DATE__とかみたいに自動で定義してくれるといいんですが。
0618デフォルトの名無しさん
NGNGBCB ならビルド番号を自動でカウントアップしてくれるけど、
VC なら VBS でガリガリ作ってやる必要がある。
MS のどっかにその VBS があったと思うぞ。
0619デフォルトの名無しさん
NGNG他のマシンに移すときってみなさんどうしていますか?
キーの設定とか、ウィンドウ配置だとか、ツールバーだとか・・・
特にキー設定を移す方法がわからなくて、レジストリ等散々探してみたんですがこれというものを
見つけられませんでした。
0620デフォルトの名無しさん
NGNG探し方が悪い
レジストリにもろにあるぞ
0621デフォルトの名無しさん
NGNGC:\WINNT\Temp\no.datの場所のファイルを
読み込みたいんですが
warning C4129: 'W' :
エスケープ シーケンスとして正しく認識されませんでした。
って表示されてしまいます。
で、C:\\WINNT\\Temp\\no.datに変えてみて
実行してみたらちゃんと読み込めず
デバックエラーっていうダイアログが出てきてもう
どうすることもできません。
誰か解決方法わかりますか?
0622デフォルトの名無しさん
NGNGオープンはできたが621のヘタレコードでクラーシュしているだけだと思われ。
デバッガ使えよ。
0623デフォルトの名無しさん
NGNG0624621
NGNGprintf("ファイルオープン失敗\n") ;
exit(1) ;
}
これ付けてみたらファイルオープン失敗って
でちゃいます・・・。
ちゃんと読み込めてないんでしょうね。
ちゃんとアクセス権もありますけど無理っぽいです。
もうしんどくなってきた、ちょっと逝ってきます。
0625デフォルトの名無しさん
NGNGプロジェクトのC++タグ、コード生成を「マルチスレッド(デバッグ)」
にすると問題が無いのですが、「マルチスレッド」にすると動かないんです。
しかもF5で実行すると「マルチスレッド」であっても問題がでません。
メモリ確保の関係でこけてる気がするのですが、デバッグモード(!=デバッグバージョン)
だと動いてしまうので確認もできず途方に暮れています。
もし何かご存知の方、いらっしゃいましたらアドバイスお願い致します。
0626625
NGNG質問をかえて、ctrl+F5で実行した場合とF5で実行した場合とでは、
何が違ってくるのかだけでも、よろしければ教えて下さい
何かdefineでもされてるのでしょうか
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGどなたか教えて下さい。
1.画像ファイルを読み込む(jpeg,tif,bmp等種類を問わずに)
2.エディットボックスに入れた文字をその画像の上に載せる
3.その画像をダイアログに貼り付ける
0629デフォルトの名無しさん
NGNG何を教えて欲しいのか教えてくれ。
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG2.メモリDCに1で読んだDIBを張り付け、GDIで文字を上書き
3.あらかじめビットマップコントロールをダイアログに張っておいて、そこに2でできたDIBをBitBltする。
いじょ。
0632U-N
NGNG0633デフォルトの名無しさん
NGNGそのCOMはどこにあるんでしょか?
0634デフォルトの名無しさん
NGNG2.拾う
3.書く
0635デフォルトの名無しさん
NGNG書きますので教えて下さい。
どういう風に書けばいいんでしょうか?
0636デフォルトの名無しさん
NGNG2.データを読む
3.展開する
0637デフォルトの名無しさん
NGNG取りあえず1のコードから教えて下さい。
0638デフォルトの名無しさん
NGNGヘルプにも書いてあるし付属のサンプルだってある。
チュートリアルにも書いてあるよ。
0639デフォルトの名無しさん
NGNGすいません。
そうですね、CFileDialog 使えば良いんですよね。
2.のデータの読み込みってどうやれば良いんですか?
0640デフォルトの名無しさん
NGNGヘルプにも書いてあるし付属のサンプルだってある。
チュートリアルにも書いてあるよ。
0641デフォルトの名無しさん
NGNG普通に CFile::Read でいいでしょう
0642デフォルトの名無しさん
NGNGえっと確認なんですけど、CFile::Readを使うの?違いますよね?
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNGアウチ!
使えばいいのか。
3.展開するってのはどうすれば良いの?
0645デフォルトの名無しさん
NGNGなにがしかの圧縮がかかっていれば展開する。
それぞれのフォーマットでどうデータが格納されてるかは自分で調べれ。
たいてい展開するコードが公開されてるよ。
ていうか2chをリロードしてるヒマがあったら手を動かせ。
ヘルプ読め。webを検索しろ。
0646デフォルトの名無しさん
NGNGCMainFrame >> CSplitterWnd >> CView
これを、次のようにしたいのですが、
CMainFrame >> CSplitterWns >> COtherFrame >> CView
終了したときにエラーになってしまいます。(WINFRM.cppの829行)
OnCreateClientでCCreateContexをいじってみたりしましたが、駄目でした。
この場合、どのようにすればいいのでしょうか?
0647625
NGNGF5やマルチスレッド(デバッグ)で実行した場合は、たまたま
必ずチェックを通ってしまうという現象が起きていたみたいです。
つまらない質問をしてしまい、大変申し訳ありませんでした。
>>627
同じような所でお悩みのようですが、原因はたぶん別のことだと思います。
私のはマヌケすぎな理由だったので。何か力になれると良いのですが…。
0648デフォルトの名無しさん
NGNG背景色とか。
どーすればいいの?
0649SAGE
NGNG0650デフォルトの名無しさん
NGNGカベに当たってしまいました。ソースが汚いですが、見てやって下さい
----------------------------------------
#include<stdio.h>
#pragma warning( disable : 4786 )
#include <vector>
#include <map>
typedef struct{
int aaa;
char *bbb;
} T_CCC;
vector<map<int,T_CCC>::iterator> m_vec;
void procs()
{
vector<map<int,T_CCC>::iterator> p;
p = m_vec.begin();
for( ; p != m_vec.end() ; p++ )
{
printf( "%d", p.second.aaa ); // ←このコードがエラーになります
}
}
----------------------------------------
mapで管理しているもののうち、一部のパターンに乗るものだけを
別途リスト化したいと思い、書いたコードです。
多分、こんな方法を使わなくても、色々な良い方法があると思うのですが、
多重化しなければ成らなくなった時の例題ソースにもしたいので、
解決できると有り難いです。
コンパイラは"MS-VC++6.0pro"で、(関係無いですが)MFC非使用です。
0651650
NGNGさらに見難くなってしまってすみません m( _ _ )m
0652デフォルトの名無しさん
NGNG一応こんな風に解釈してみました。外してるかな?
void procs()
{
vector<map<int,T_CCC>::iterator>::iterator p;
p = m_vec.begin();
for( ; p != m_vec.end() ; p++ )
{
printf( "%d", (*p)->second.aaa );
}
}
main(){
T_CCC a = { 5, "a" };
T_CCC b = { 8, "b" };
T_CCC c = { 3, "c" };
//a,b,cをmapで管理している
map< int, T_CCC > _map;
_map[ a.aaa ] = a;
_map[ b.aaa ] = b;
_map[ c.aaa ] = c;
//a,bを一部のパターンに乗るとして別に管理
m_vec.resize(2);
m_vec[0] = _map.find( a.aaa );
m_vec[1] = _map.find( b.aaa );
procs();
}
このやり方、正直回りくどくしちゃってるだけの気もします(^-^;
0653652
NGNGすいませんが適当に読み替えといてください。
あとvector<map<int,T_CCC>::iterator>::iterator pには御注意をば。
うーん、mapで実体を持つなら上のもありですが、そうじゃないなら
vector< T_CCC* >m_vecの方が良いと思います。
0654650
NGNG解釈は微妙に違ってましたが(^^;
エラーは完全に回避することが出来ました。
徹夜明けだったものですから(言い訳です)、カッコ付けるのを試してませんでした。
というか、”試す”なんて書いている時点でダメプログラマですね(爆)
mapの方には500件程度のデータがあり、
vectorに入れなければ成らないのは10件程度で、
mapのキー以外で検索しなければならないものでしたので、
こういう形にすることになってしまいました。
まだSTLの本を全部読み終わって居ないので何とも言えないのですが、
"反復子"と"ポインタ"っていうのは、元アセンブラプログラマから見ると、
同じに見えてしまっていまして、現在vectorのほうに"*"を付けてませんでした。
この処理は、今後バグを生む事は分かっているのですが、どういう結果になるか
興味があるので、結果を知ることが出来るまで、このままにしようと思っています。
(一応、(mapは位置が保証されるとの事なので)mapに実体を持っています。)
ただ、この処理自体が、スレッドで、1秒間に30回ほど実行されるものなので、
ほかの怖いバグ(クリティカルなもの等)に悩まされることだろうと思います。(^^;
ということで、速い回答を頂き、感謝します。
私も、色々な質問に回答が出来るくらい、精進しなければ・・・(^^;;
0655不定形ウィンドウ
NGNGダイアログベースで作成したアプリそのものを、
SetWindowRgnをつかって不定形ウィンドウにしたいのですが
どのように適用すればよいでしょうか?
教えてください
0656momo
NGNG重複してしまうのですがこちらでも質問させて頂きます。
プログラム中からアクセス権を変更するにはどうしたらよいのでしょうか?
2ch初心者でして、もしご質問手順に間違いがありましたら、合わせてお教え願います。
宜しくお願いします。
0657デフォルトの名無しさん
NGNGまず2ちゃんガイドをよ〜〜〜〜〜〜〜っく読んで、初心者板で1ヶ月修行してこい。
0658デフォルトの名無しさん
NGNGなんで?
質問スレで質問して何が悪いの?
0659無責任な名無しさん
NGNG#if !defined(_WIN32) && !defined(_MAC)
なんていうのを見かけるたび気になるのですが…
0660デフォルトの名無しさん
NGNGVC付属のやSGI、STLportなどいろいろなSTLを試してみたんですが
どれも理不尽に近い不具合があって、うまくいきません。
中には、VC++5.0SP3を組み込めば直るというものもあるんですがLEなんで
それも無理だし・・
VC++5.0LEで問題なく使えるSTLって何かないでしょうか?
あったら教えて欲しいです。
それともVC++5.0LEには見切りをつけて、VC++6.0に買い換えた方がいいでしょうか?
0661デフォルトの名無しさん
NGNGVC6(pro以降)を買うのが良いかと。
でも初心者が学習用に使うにはお金がもったいないから、
とりあえずgccとかBCCとかタダで手に入るの使えば?
身を持って感じてると思うけど、
個人で製品買っちゃうとVerUpの度に付き合うのは苦痛だよ。
(VC6は結構寿命長かったけどね)
0662デフォルトの名無しさん
NGNGMAC用のOfficeとかIEとか作るときにでもMSが
内部で使ったのかと。
ここでふと思ったんだが、ということはMACにも
WIN32 APIが移植(?)されてる、ってことなのかな?
0663RIP_MAPIRO
NGNGもしかして、fiend operatorうんぬん のことかな。
VC6 pro sp5 を仕事で使ってる。
0664デフォルトの名無しさん
NGNG0665660
NGNGプ、プロ版っすか!?スタンダートじゃよろしくないですかね?
8万はキツイっす・・。
BCCはDirectXと相性が気になって今まで避けてたんですが
手元にあるので使ってみようと思います。
ありがとうございました。
>>663
それかどうかはわからないんですが、
VC版は、コンテナに積むオブジェクトは、<二項演算子などが使えなきゃ駄目、
SGI版は、イテレーターのoperator->()が使用できない、
STLport版は、リバースイテレーターのoperator->()定義でerror C2102
になるなどです。
0666にお
NGNG環境はWin98,VisualStudio6sp2E(Enterprise Edition)です。
測定の方法が少々特殊なのですが、
1. 10MBのデータを書き込む
2. 1分待つ
3. 1で書き込んだでーたを読み込む
4. 1分待つ
5. 以上を480回(ほぼ8時間)繰り返して時間を測定する
このような動きをするプログラムを作って、
うちの会社で販売しているソフトがインストールされている場合と
されていない場合の速度差を比較したいのです。
で、一応プログラムは出来たのですが、
書き込み時はいいのですが、読み込み時はディスクキャッシュを読んでしまい、
HDDへアクセスしてくれません。
ディスクキャッシュを使わないで、
HDDから読み込んでくれるようにする簡単な方法はないでしょうか?
ちなみに、Windowsのスワップファイルのサイズをほぼ0にしたところ、
Windows自体がすごく遅くなってしまい、論外でした。
0667デフォルトの名無しさん
NGNG0668RIP_MAPIRO
NGNG当てずっぽな回答かもしれないけど
適当なメモリを確保して解放する処理をかませてやれば
ディスクキャッシュを事実上無効にできそうな気がするが。
例:
int* lpInt = new int[HeavyNumber];
for(int i=0;i<HeavyNumbe;i++) lpInt[i] = i;
delete []lpInt;
0669にお
NGNGちなみに、スワップファイルのサイズ -> でぃすくきゃっしゅのサイズ
の誤りでした。仮想メモリを小さくしてどうするねん。
>>667
240回読み込みテストを行うので、240個もファイルを作らないといけません。
しかも、どの読み込みテスト時にもキャッシュが使われないという
保証がいまいち得られないのが、ちょっと...
>>668
なるほど。でも、確保したメモリがスワップされてしまうのでは...
0670RIP_MAPIRO
NGNG>確保したメモリがスワップされてしまうのでは
それが目的だと思うが。
GlobalMemoryStatusでHeavyNumberの値を調節して1分待つ間に
ディスクキャッシュを事実上無効にする処理を終了すれば良いのでは。
0671デフォルトの名無しさん
NGNGWindowsのキャッシュを使ってると恩恵受けられないようなソフトに何の意味が。
それに、そんな特殊環境で得られたデータを使って宣伝されるのかと思うと恐ろしい。
で、なんて会社のなんてソフト?
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG_Tは対応しているときはwchar_tで_TEXTはunicodeにおきかえられる
とMSDNに書いてあったんですが、実質的にはwchar_t == unicodeと
考えていいのでしょうか?
_Tと_TEXTを混同して使ったときに問題が起こるケースがあるとしたら
どんなときでしょうか。
よろしかったら教えてください。
0675デフォルトの名無しさん
NGNGそれ以前に、将来UNICODEアプリを作るために・・・・みたいなアホな動機の
ためにいちいち_Tつけるのか?
_T"text"とかじゃなくて、ふつーに "text"ってやれば。
0676デフォルトの名無しさん
NGNGNT系でもcharで問題ないのでしょうか?
そこらへんがよくわからないのでとにかく_Tをつけたり、
TCHARを使っているんですが
0677デフォルトの名無しさん
NGNGNTでもXxxA系のAPI実装されてるから動くが、
ネイティブじゃないので微妙に遅いらしい。
0678デフォルトの名無しさん
NGNG返答ありがとうございます
NT系では_Tとしといたほうが無難ということでしょうか
0679デフォルトの名無しさん
NGNGダイアログに貼り付けたいときは
OnInitDialog()
に記述するのは分かったけど、
ActiveXコントロールに貼り付けたい場合ってどうするんですか?
OnCreateしか思い浮かばない。。。
0680デフォルトの名無しさん
NGNG0681680
NGNGごめん
>>ActiveXコントロールに貼り付けたい
これはちょっとわかんないや
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNG同じように思えるんだけど・・・。
0684デフォルトの名無しさん
NGNGどの辺が???
ぜんぜん違うけど・・・・・
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGNT用と9X用の2種類の実行ファイルを別々にリリースすんのか?
0687デフォルトの名無しさん
NGNG0688にお
NGNGHDDのアクセスを速くするソフトを作っているのではありません。
データのアクセスにからむ常駐ソフトを作っているのです。
>>672
別に捏造はしませんよ。実験内容は、そのままユーザに伝えます。
ちなみに、ディスクキャッシュを使わずに、HDDへアクセスする方法はわかりました。
CreateFileの関数で、FILE_FLAG_NO_BUFFERINGフラグを指定すればOKでした。
ちょっとした、条件が絡むので少々面倒でしたが。
それでは、ご回答していただいた方ありがとうございました!
0689デフォルトの名無しさん
NGNGキャッシュ使わずにアクセスするのにかかる時間を
使うこと自体捏造ではないのですか
0690デフォルトの名無しさん
NGNGほぼ滅多に存在しない条件でのデータに
なんの価値があるのでしょうか
>クライアントを納得させる資料
そうか
0692デフォルトの名無しさん
NGNG学生みたいな雰囲気のレスがあるな
0693デフォルトの名無しさん
NGNGどうすればいいんですか?
0694デフォルトの名無しさん
NGNGそのクラスにコンテナクラスインスタンスの参照渡しとけばいいじゃん。
0695デフォルトの名無しさん
NGNGシロートや学生ってそんなに悪いことなのかねぇ…。
あんただって知らない分野逝ったらシロートでしょ?
つーか、そんな事言うのは年寄りの証拠だね。
あ、俺は学生じゃないよ。下っ端だけど(藁
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG参考になる書籍が見つかりません。
どなたか道を示してもらえませんか。
お願いします
0698デフォルトの名無しさん
NGNG別に言わんでも下っ端だって分か
0699デフォルトの名無しさん
NGNGかけて(たとえばだんだん明るく)表示したいと思ってます。
GDIでできるのか、あるいはDirectXやOpenGLを使った方が
いいか迷っています。
ゲームではないです。どれを使ったらいいでしょうか?
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGゲームじゃないならGDIでいいんじゃない?
問題なく作れるよ。ただ、パレット使えない画面モード
(16bit以降)はグラデ書き換えだけでも遅くなるから、
あんまり大きい画像には向かないと思う。
(DirectXとかだと、その辺をビデオカード側のハードウェア機能で
代替してくれる可能性があるかもね。)
0702デフォルトの名無しさん
NGNGだんだん明るくしてーとかのフィルタは自分で書かなきゃいけないってこと。
3Dのライティングでどうこうすればできるのかもしれないけど、
それはきっとGDIでチマチマ書くよりずっとずっと大変。
0703699
NGNG早速のレスありがとうございます。
GDIでやってみようと思います。
0704この業界から逃出した男
NGNG{
static int i = 0 ;
HDC hDC = GetDC( hWnd );
SetBkMode( hDC , TRANSPARENT );
SetTextColor( hDC , RGB( i , i, i ) );
TextOut( hDC , 0 , 0 , "宇津だ死のう" );
ReleaseDC( hWnd , hDC );
i++;
if( i >= 255 ) i = 255;
}
これをタイマー呼出しとかする毎呼出してごらん。
とか言ってみるテスト。
0705699
NGNGそうです。やりたかたったのは、こんな感じのやつです。
どーもありがとうございます。
0706デフォルトの名無しさん
NGNGやっぱりそうするよね
>問題なく作れるよ。ただ、パレット使えない画面モード
>(16bit以降)はグラデ書き換えだけでも遅くなるから、
とか
>だんだん明るくしてーとかのフィルタは自分で書かなきゃいけないってこと。
たかが文字の色を変えるだけで、なんでそんな回りくどいことをするんだ
発想硬すぎ
0707この業界から逃出した男
NGNGまあ、確かに昔は16bitカラーでの処理とか重かったですけどね。
ゲームではない、つまり60fps出なくて良いからもっと楽々出来るし。
0708デフォルトの名無しさん
NGNGなんでそうなる? 701が言ってるのって、GDIなら>>704みたいのを
自分で書く必要があるぞって言うまさにそのことじゃないのか?
0709この業界から逃出した男
NGNGだから、GDIに画面モード、画面の色数は関係ないと言う事。
「ただ〜」から始まる言葉が全然見当違いな事を逝っているって事でしょ?
いや、違うか、GDIで画面モードが関係すると言えば…
GetPixel とか使えって言ってるのか!?
0710デフォルトの名無しさん
NGNGだから速度にパレット云々は関係ない。
DirectDrawでやるならパレットの意味もあるが。
どちらにしてもテキストの色を変えるだけなら、根本的に的外れな話だ。
0711この業界から逃出した男
NGNG0712デフォルトの名無しさん
NGNGあれってどうやってるんですか?
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG全部開いて、開けたのが存在するデバイス?
0715デフォルトの名無しさん
NGNGレジストリを当たれ。
HKEY_LOCALMACHINEの下のどっか。
0716デフォルトの名無しさん
NGNGレジストリを見てみたんだけど、実際に今あるかどうかの
判断が分からなかったので、開けるかどうかで試してみました。
ところが、CreateFileで開いたのですが、COM10以降が開けないみたいです。
これって、どうしたら良いんでしょう?
カードH"は間違いなくCOM13で動いているのですが・・・
0717デフォルトの名無しさん
NGNG0718714=716
NGNGできました!さんきゅ〜です。
0719デフォルトの名無しさん
NGNGsizeofで得られるサイズは管理領域ですか?
0720デフォルトの名無しさん
NGNGCreateで死んじゃいます。
詳しく書くと、メインのダイアログからCWinThreadから派生させたクラスを作り、
CreateThreadまたはAfxBeginThreadでメインとは違うスレッドを作成します。
そのスレッドからCSocketの親になるウインドウを作成します。
で、そのウインドウから CSocketを作成しcreateを実行すると死にます。
スレッドを実行させないと問題なく動作するのですが・・・・。
CAsyncSocket または CSocket が メインとは別スレッド上では動作しないなんて話はないと思うのですが・・・・
同様なことで詰まった方や、何かご存じの方がいらっしゃいましたらレスよろしくお願いします。
0721デフォルトの名無しさん
NGNG#include<vector>
#include<algorithm>
#include<string>
int main(){
std::vector<std::string> v;
std::find(v.begin(), v.end(), "");
return 0;
}
cl -GX -Ox -Ob2 bug.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
bug.cpp
bug.cpp(8) : fatal error C1001: 内部コンパイラ エラー
(;´Д`)
0722720
NGNG鬱だ。
0723デフォルトの名無しさん
NGNG幾つかページを見て試したけど意味不明で、できたソフトも死にまくり…
0724デフォルトの名無しさん
NGNGcl.exe 13.00.9030(VC7 in .NETβ1) ならコンパイルできた。
まぁ、バグですな。
0725デフォルトの名無しさん
NGNGダイアログベースのアプリでどこにもフォーカスを当ててない状況で
リターンキーを押すとアプリが終了してしまいます。
これはなぜ?
0726SAGE
NGNGSetClipboardViewer でウインドウを登録したら、
変更のたびに WM_DRAWCLIPBOARD が送られる。
>>725
コレかな?
http://piza.2ch.net/test/read.cgi?bbs=tech&key=989902845&st=85&to=89&nofirst=true
0727725
NGNGそれだ、さんきゅ〜
0728デフォルトの名無しさん
NGNG#define assert(exp) (void)( (exp) || (_assert(#exp, __FILE__, __LINE__), 0) )
これって思いっきりバグじゃないですか?
(exp) && (assert ...
こうならないといけないと思うのですが。
どっちにしろ、式が0でもassertしちゃうじゃないっすか、これだと
0729デフォルトの名無しさん
NGNG0730728
NGNGいや、それはわかりますが、
あえて論理演算でやろうとすると・・・ってことで。
あと、_assertと(void)0は逆ですよね
0731デフォルトの名無しさん
NGNG「バグじゃないですか?」とか言う前に、自分で何を確かめたのか言ってみれ。
確かめてないでしょ
0733デフォルトの名無しさん
NGNGふむ。では、「なにを」「どうやって」たしかめて、728の結論(=assertマクロが
仕様を満たしていない)に達したのかプレゼンしておくれ。
10行くらいのテストプログラムを書いてくれればいいんじゃないかな。
0734デフォルトの名無しさん
NGNG教えて君発見!!
0735デフォルトの名無しさん
NGNGぜんぜんバグって無いよ。
assert()の仕様と式の評価規則をよく考えてごらん。
0737デフォルトの名無しさん
NGNG---コード1---
#include "assert.h"
int main(int argc, char* argv[])
{
assert(!0);
return 0;
}
---コード2---
#include "assert.h"
int main(int argc, char* argv[])
{
assert(0);
return 0;
}
---結果---
1:何も表示されない
2:アサート発生
0739デフォルトの名無しさん
NGNGコードを示すんだけどな。
バグって無いことを証明することは不可能なんだから。
07407誌のプログラマー
NGNGHTMLファイルなど・・・。
0741デフォルトの名無しさん
NGNG恥かいたからって小学校に乱入すんなよ。
0742デフォルトの名無しさん
NGNGソケット使えば?
0743デフォルトの名無しさん
NGNGクラスのメソッドとして用意したウィンドウプロシージャを
lpfnWndProcに設定する際のコードは
どのように書けばいいのでしょうか?
このメソッドを、
LRESULT CALLBACK Foo::WinProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam);
Fooコンストラクタの中で、
こう設定するとき、なぜか型が合わなくてエラーになってしまう
WNDCLASSEX klass;
klass.lpfnWndProc = (WNDPROC)WinProc;
0744デフォルトの名無しさん
NGNGいいことを教えてやろう。
次のコードで、foo()の戻り値が0以外だと、bar()は呼ばれないのだ。
int main()
{
foo() || bar();
return 0;
}
0745デフォルトの名無しさん
NGNGどうしてもクラスのメソッドにしたかったら、staticメンバにしろ。
class Foo{
public:
static LRESULT CALLBACK WinProc(...
};
0746743
NGNGありがとう。staticにしてみたらエラーが出なくなりました。
が、
'Foo::m_bar': スタティックメンバ関数内の不正なデータメンバへの参照です
というエラーが沢山出てきて鬱だ。
普通、ウィンドウプロシージャはクラスの
メソッドにしないほうがいいのでしょうか?
0747デフォルトの名無しさん
NGNGもちろんstaticメンバからのメンバ参照はできないので、この場合だと
コンストラクタでウィンドウプロシージャを設定する際に何らかの方法でthis
ポインタを渡す必要がある。
クラスメンバにするかどうかは個人的にはどうでもいいと思うけど、
ウィンドウプロシージャからメンバをアクセスするならやっぱりthisポインタ
は渡さなきゃいけないんで、手間は同じだと思うよ。
0748デフォルトの名無しさん
NGNG18分後のレスの時点で気付いていれば・・・
今ごろ全assertの評価式を置換中か(w
>>744
>次のコードで、foo()の戻り値が0以外だと、bar()は呼ばれないのだ。
× 0以外
○ 0でなければ(非0であれば)
細かい事だが
0750728 != (732 == 736)
NGNGassertする条件逆でした。
みなさん、親切にどうもでした。
0751728 != (732 == 736)
NGNGまったくお恥ずかしい。
オオボケかましました。
お騒がせして申し訳ない(^^;
0752デフォルトの名無しさん
NGNGおまえ偽者だろ
0753この業界から逃出した男
NGNGhttp://www.nt.sakura.ne.jp/~miwaki/progtips/window/wndbase.shtml
ここのページ見てごらん。
やり方が書いてある。
プロパティーシートに置いたラジオボタンの位置の値を
コントロールからの値で初期化し、ラジオボタンが変化したら
そのインデックスをまたコントロールに戻したいのですが、
どうすればいいのでしょう?
0755743
NGNGメソッドではないプロシージャ関数を予め Foo のコンストラクタに渡して
得られたインスタンスを、そのプロシージャ関数の中で使って、
Fooのメソッドのプロシージャ相当を呼び出す。
というややこしいスパゲッティな方法を思いついてとりあえずうまくいきました。
>>753
ありがとうございます。
まさに知りたかったエレガントなやり方が載ってるのでそっちを参考にしてみます。
0756デフォルトの名無しさん
NGNGWS_SYSMENU フラグを追加すれば、WNDCLASSに指定したアイコンがタスクバーに書かれることは解ったんですが、
これを設定してしまうと他の部分で不具合が出てしまいました。
なるべく、これを利用しない方法があるといいんですが。
※WS_SYSMENU を設定しなくてもAlt+Tabメニューでは指定したアイコンが表示されますが、
下のタスクバーでは表示されてくれません。
0757デフォルトの名無しさん
NGNG何なんですか?
0758デフォルトの名無しさん
NGNG左上のアイコンはコントロールボックス(システムメニュー)という。
これを付けるか付けないかがWS_SYSMENU
オーバーラップウィンドウ等はこれが必ず含まれる。
ここにアプリケーションアイコンが使われているだけで、特別にアイコンを出しているわけではありません。
つまり WS_SYSMENU を使わずアイコンを出している状態というのは通常あり得ません。
下のタスクバー?
・Windowsのタスクメニューバー
・ステータスバー
意味がよくわかりませんが指定のアプリケーションアイコンが出されているだけだと思われます。
というか、この質問だとたぶんみんなに怒られます。
0759デフォルトの名無しさん
NGNGbiPlanes =1以外使ったこと無し。
biBitCount が1プレーンあたりのビットカウントとなっているので
カラービット数=biBitCount/biPlanes
ということで、2ドットずつカラー指定するデバイスとかが奇跡的に存在したら使用するんとちゃいますか。
超大昔のパソコンにそんなのもあったような気が。
0760デフォルトの名無しさん
NGNG全てのコントロールも含めた形で、ダイアログボックスをCreateWindowEXで
作成する方法ってあるのでしょうか?
FindResourceやらLoadResourceやら使って、ダイアログリソース情報を
取り出すまでは出来たのですが、そのダイアログ上にある他の
リソースの取得方法が分からないのです。
要するにダイアログで>>753をやりたいのですが…
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNGハード的にR,G,Bのそれぞれのメモリが独立してる場合に使うもんだと思うぞ。
9801のGDCとかEGCみたいな。AGDCなんてのもあったか。
>2ドットずつカラー指定
これは普通に存在するだろ。YCbCrをネイティブで実装してたり。
普通は輝度:色差X:色差Yは4:2:2だから32bitをY:16bit/Cb:8bit/Cr:8bitで
分けてたりとか。
MSX2+の自然画モードなんかは4:1:1だったから、カラー指定は実質4ドット
ずつだった。
0763デフォルトの名無しさん
NGNGどこで耳にしたんですか?
0764デフォルトの名無しさん
NGNGつまりこんなのを読み込んで直接作るってことっすか?
gDir.rc---------------------------------------------
〜
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "バージョン情報 gDir"
FONT 9, "MS Pゴシック"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "gDir Version 1.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
LTEXT "Copyright (C) 1900",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP
END
〜
----------------------------------------------------
切れるちゃうから次へ
0765764つづき
NGNGダイアログの場合は CreateDialogIndirect() というのを使って
DLGTEMPLATE というムチャクチャな構造体をちまちま使ってつくるようになってます。
ウィンドウプロシージャの指定だけなら753と同様の方法でよいと思われますが。
CDialog は CWnd の派生クラスなので。
ちょっとやりたいことが不明。
0766760
NGNGレスどうもです。MFCを使わずに=Aが前提でして=c言い忘れててbキいません。
DLGTEMPLATEの情報までは取得できるのですが、そこから先、cdit数分の
ダイアログボックス上アイテムを取得する方法が分からず困ってます。
ヘッダ読むと_DialogSplitHelperとかいう、APIには無い裏技みたいなの
使ってるんですよね。ここで詰まってます。どうしたものやら…。
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGもしかするとATLがらみっすか?それだと辛い。
ま、いーとしてこんなのが出てきました。
やったこと無いんでどーだかわかりませんが
(hDialogTemplate は LoadResource()から取得)
LPCDLGTEMPLATE lpDialogTemplate = (LPCDLGTEMPLATE)LockResource(hDialogTemplate);
BOOL bResult = CreateIndirect(lpDialogTemplate, pParentWnd, NULL, hInst);
UnlockResource(hDialogTemplate);
0769756
NGNGこの場合だと、タスクバーには
[ApplicationTitle]
とアイコンが無い形で表示されますが、これを
[■ApplicationTitle]
のように表示したいのです。(アプリのキャプションがApplicationTitle、■はアイコンです。)
フルスクリーンのアプリで、WS_SYSMENUを付加してしまうと、
フルスクリーンに切り替わった瞬間に見苦しいウィンドウの枠が表示されたり、
(条件は良く解らないのですが、フルスクリーンなのに)枠をドラッグできたりしてしまいます。
>>758
結論としてはWS_SYSMENUが無い場合、タスクバーの表示を
[■ApplicationTitle]
のようにすることは出来ないということでしょうか?
ちなみにタスクバーとは
・Windowsのタスクメニューバー
として書かせていただきました。
0770デフォルトの名無しさん
NGNGそうゆうことだと思っといて下さい。
ウィンドウ枠の不穏な動きは多分 WS_CAPTION を指定していないからだと思います。
WS_BORDER も指定されていないとのっぺらぼーなウィンドウができますが、WM_NCPAINT がコーディングされていないと、気分でキャプションが出たり消えたりします。
標準的には WS_OVERLAPPED か WS_POPUPWINDOW(前述のWS_S〜とWS_B〜とWS_C〜の複合版)あたりがいいと思います。
あとは思考錯誤。
0771訂正
NGNG○WS_POPUPWINDOW(前述のWS_S〜とWS_B〜とWS_P〜の複合版)
0773デフォルトの名無しさん
NGNGなぜか以前見たウェブのHTMLファイルの一部が紛れ込んでいた。
何度リビルドしても必ず削除したHTMLファイルの一部が紛れ込んでしまう。
VC6ってビルドするときにわざわざFATを無視したディスクの内容を連結す
る機能でもあるの?
0775デフォルトの名無しさん
NGNGあったら教えてください。
0776名無しさん
NGNG俺もその症状あったよ。
自分で作ったexeファイルの中に2chのログのデータが入ってたのは笑った。
0777RIP_MAPIRO
NGNGATL COM プログラミング SE
他にもATL&COMを冠した本があるからチェックしてもよいかも。
そつなく広範囲を網羅しているみたいだからこれを選択した。VC++
でのプロジェクトの作り方&解説が親切で気に入っている。
あとは、SDKのSamplesは結構勉強になる。
0779デフォルトの名無しさん
NGNG優先されると考えていいのでしょうか、だめなのでしょうか?
例外はあるのでしょうか?
0780デフォルトの名無しさん
NGNG「優先される」という言葉が意味不明気味だけど、同じスレッドなら、
WindowProc への関数コールみたいに処理される。別スレッド(プロセス)
だと先方のメッセージキューに積まれて、処理されるまで呼び出し側には
帰ってこない。
0781779
NGNG返答アリガトウございます。どこかの掲示板で、中にはSendMessage
で送られたメッセージが現在の処理よりも先に処理されないものが
あると書いてあったような気がしたので聞いてみました。
0782デフォルトの名無しさん
NGNG入力させる方法ってありますか?
コンソールから"あ"を入力させようとすると、
"@a"になってしまいます。
@はALT+漢字
aはあと入力した時。
(打鍵したキーの文字がそのまま入る)
0783デフォルトの名無しさん
NGNGgetchって元々日本語云々で使用する関数では無いぞ
0784783
NGNG要はコンソールからバッファリングをせずに入力させたいんです。
例えば、getc使うと行単位になってしまうでしょ?
(tab打鍵で入力文字補完とかさせたいんで。)
0785783
NGNG0786783
NGNG#include <stdio.h>
#include <conio.h>
int main() {
int c;
while ((c = getch()) != 0x1b) {
printf("%x", c);
putch(c);
}
return 0;
}
0787782
NGNGわたしは783じゃなくて782です
0788デフォルトの名無しさん
NGNGDOS と Windows の PC側からのFEPのとらえ方の差です。
0789782
NGNGですので、コンソールからバッファリングをせずに、
漢字入力させる方法がわかればいいんですが。
0790デフォルトの名無しさん
NGNG「押されてない」って値ですぐに返って
きたんじゃなかったかな。
786のコードだと、そういういらない値まで…
というところから、788氏の言うことに続く。
0791782
NGNGべつにgetchにこだわっているわけではありません。
同様の動作が行なえれば良いので。
(789は、その辺を含ませた発言だったのですが)
0792デフォルトの名無しさん
NGNGVCじゃなくて、Win9Xが腐ってるんじゃねーのか?
0793792
NGNGその様です。
どうすればいいんでしょう。
これも関係ありそうです。
http://www.microsoft.com/japan/support/kb/articles/J024/2/11.htm
(この説明、良く分からないんですが・・・。)
0794デフォルトの名無しさん
NGNG#include <stdio.h>
#include <conio.h>
#define ismbblead(a) (0x81<=a&&a<= 0x9F)||(0xE0<=a&&a<=0xFC)
int main() {
char c[3];
c[3]='\0';
while ((c[0] = getch()) != 0x1b) {
if(!ismbblead(c[0])
{
printf("%x", c[0]);
putch(c[0]);
}
else
{
c[1] = getch();
printf("%x%x", c[0],c[1]);
puts(c);
}
return 0;
}
じゃあ、納得いかないってこと?
0795デフォルトの名無しさん
NGNG日本語がおかしいと思ったときは、英語を確認しましょう。
http://support.microsoft.com/support/kb/articles/Q146/4/48.asp
>are unable to receive DBCS characters composed by IMEs.
>DBCS 文字を受け取ることができます。
おいおい‥‥どこのヴァカか訳しやがったんだ?
要するに、Win9Xでは仮名漢が16bitだからどうしょうもない、って事。
>This behavior is by design
で、それは仕様とか言い張るし。
0796デフォルトの名無しさん
NGNG{
if(pInfo && pDC->IsPrinting()) {
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX),
pDC->GetDeviceCaps(LOGPIXELSY));
pDC->OffsetWindowOrg(0, 0);
pDC->SetWindowExt(80, 80);
まぁ、こんな感じで処理を行っているんだけど、
プレビュー時は思った通りに拡大されるんだけど、印刷がなぜかできません。
上記のコードをコメントにすると出るんだけど・・・?
どうすれば、拡大印刷ができるのでしょうか?
0797デフォルトの名無しさん
NGNG{
if(pInfo && pDC->IsPrinting()) {
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX),
pDC->GetDeviceCaps(LOGPIXELSY));
pDC->OffsetWindowOrg(0, 0);
pDC->SetWindowExt(80, 80);
まぁ、こんな感じで処理を行っているんだけど、
プレビュー時は思った通りに拡大されるんだけど、印刷がなぜかできません。
上記のコードをコメントにすると出るんだけど・・・?
どうすれば、拡大印刷ができるのでしょうか?
0798デフォルトの名無しさん
NGNGツリーを展開させると多少ちらつきがはいります。本物のエクスプローラでツリーを
展開させると、展開した部分より上は再描画していないようで、下の部分は
スクロールのときによく使われるScrollWindowで下にずらしたような感じに
思えました。CTreeViewクラスなどをつかって同じようなことはできるのでしょうか?
あるのでしたらヒントだけでもください。
またはSDKのように一からツリービューを使って、このような処理をできるのでしたら
教えてください。
0799798
NGNGお願いします
0800デフォルトの名無しさん
NGNGやるとすれば OwnerDraw じゃない?
普通に使っても、そんなにチラチラするとは思えないんだけど…
なにか余計な Redraw 掛かってない?
0801792
NGNGおそらくそのコードがうまく働くのはNTか2000ですよね?
9xだとIMEの変換結果がgetchに渡ってこないので、
ismbbleadの漢字判定まで辿り着けないんです。
いろいろコンソール系のAPIを試した結果、
(最初に)SetConsoleMode(hstdin, ENABLE_PROCESSED_INPUT|ENABLE_MOUSE_INPUT);
↓
ReadConsole(hstdin, ch, 1, &len, 0)
こういう風にReadConsoleを使うと漢字を取り出せる事までは
わかったんですが、そうするとこんどはカーソルキーや
HomeEndDelなどキーが無効になってしまいました。
訳が分かりません。泣きたくなってきました。
(なんでgetchごときにこんなに手間がかかるのでしょうか。)
0802798
NGNGたいしてちらつきはないのですがエクスプローラーのまったく
ちらつかないのにすごいと思って聞いてみました。
0803798
NGNGたいしてちらつきはないのですがエクスプローラーのまったく
ちらつかないのにすごいと思って聞いてみました。
0804デフォルトの名無しさん
NGNG1)和が一定(ここでは4)となる自然数の列を全て列挙するプログラムを教え
てください。
2)再帰を用いたプログラムと、再帰を用いないプログラムの比較・検討を行っ
てください。
1番は
#include<stdio.h>
void abs_sum( int n, int w);
int main()
{
int w =2,n =3;
abs_sum( n, w);
return 0;
}
void abs_sum( int n, int w)
{
void in_abs_sum( int total_length, int n, int w);
in_abs_sum( n,0,w);
}
void in_abs_sum( int total_length, int pos, int w)
{
int i, j, called =0;
if ( pos >= total_length ){
putchar( '\n');
return;
}
for ( i =0;i <= w;++i){
if ( called++ ){
for ( j =0;j < pos;++j){
printf(" ");
}
}
printf("%2d",i);
in_abs_sum( total_length, pos +1,w-i);
}
}
これを参考にせよとのことなんですが。よくわかりません。
教えてください。
0805デフォルトの名無しさん
NGNGう〜ん、変更かからないはずのリージョンを
有効化してやるとか?
でも、普通かかってそうだけど・・・
0806デフォルトの名無しさん
NGNGタダでボクチンの課題を片付けてくれる人募集ですか。
いい根性だ。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG比較検討っていわれてもなー
しかもVC++ってゆうよりはただのCじゃん。
MFCとかもつかっていいの?
0809デフォルトの名無しさん
NGNGエクスプローラのあれは...
0810デフォルトの名無しさん
NGNG何?
0811804
NGNG比較検討ってゆーのは別に気にしなくてもいいです。
MFCとかはあんま使わない方がいいと思います。
0812デフォルトの名無しさん
NGNG何故このスレで?
0813デフォルトの名無しさん
NGNGSendMessage(hEdit,EM_EXLIMITTEXT,0,10000000);
何故かうまく機能しません。
EM_EXLIMITTEXT訳わかりません。
容量の制限とっぱらいたいんですが・・・。
誰かわかる方がいらっしゃれば教えていただけませんでしょうか。
0814デフォルトの名無しさん
NGNGこれを自ウインドウで検知する方法はありますか?
それもフックやサブクラス化「以外」の方法でお願いします
0815デフォルトの名無しさん
NGNG(なんでサブクラスを避けるのかは謎だが)
0816デフォルトの名無しさん
NGNGNT以外だと制限はなくならないんじゃなかった?
0817デフォルトの名無しさん
NGNGEDITコントロールの仕様。
NT/2000以外では64kbまでしか扱えない。
0818デフォルトの名無しさん
NGNGリッチエディットを使いましょう
0819デフォルトの名無しさん
NGNGa = !a; // (a == FALSE)
a = !a; // (a == TRUE)
こういう使いかたしてもいいのでしょうか
0820デフォルトの名無しさん
NGNGそういう使いかたしてもいけない理由がありません。
0821819
NGNGa = 0;
a = !a
で a == TRUE になる保証はあるのでしょうか?
0822デフォルトの名無しさん
NGNGミタイナマヌケナヘッダダッタラドウスル?
0823デフォルトの名無しさん
NGNG#define FALSE 0
とか、
#define TRUE 1
#define FALSE 2
のような、キチガイじみたヘッダでなければ大丈夫。
それがたとえ、
#define TRUE 0
#define FALSE 1
であっても、>>819の使い方には問題ない。
0824819
NGNG#define FALSE 0
のときに
a = FALSE;
a = !a;
にすると a == 1 になっているのでしょうか?
0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGBoolean の値の比較はしない方がいい。
そのまま、もしくは論理否定の条件式だけ。
0827デフォルトの名無しさん
NGNG厳密にtrueとfalseしかとらないbool型だとして、
>>824の等式を実行すると、1がbool型として計算され、
a==trueの評価がされて、結果として真が返ることになると思う。
この場合はa==1の式は真になるけどaが1かどうかはわかんないってことに。
ただVCのBOOL型ってどうも胡散臭いんで、どうなるんだろうね。
0828デフォルトの名無しさん
NGNGデムパ君ですか?
>>824のは等式でなくて代入文に見えますが。
うさんくさいとか言う前にヘッダ見たら?
0829デフォルトの名無しさん
NGNG>>824の聞きたいことはこれだろ?
俺には等式に見えるが。
0830デフォルトの名無しさん
NGNGだからヘッダ見ろって。
0831デフォルトの名無しさん
NGNGだからヘッダ見ろって。
0832デフォルトの名無しさん
NGNGだからヘッダ見ろって。
0833デフォルトの名無しさん
NGNGだからヘッダ見ろって。
0834デフォルトの名無しさん
NGNGだからヘッダ見ろって。
0835名無しさん
NGNGに有るような、オリジナルフォントを作成したいのですが
VCでどのように作るのでしょうか?
0836デフォルトの名無しさん
NGNGだからヘッダ見ろって。
0837デフォルトの名無しさん
NGNGフォントエディタを書く
0838名無しさん
NGNG0839デフォルトの名無しさん
NGNGもう一個買ってインストールしなきゃ駄目ですか?
それともいちいちアンインストールしますか?
0840デフォルトの名無しさん
NGNG同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0841デフォルトの名無しさん
NGNG同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0842デフォルトの名無しさん
NGNG同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0843デフォルトの名無しさん
NGNG同時に使うのはだめだそうです。
二つにインストールしたら片方を使うときは
片方を使ってはいけない
0844デフォルトの名無しさん
NGNGヘルプには一台に付き1セット購入が原則だって・・・・・
一台にOS二個いれろってことかぁ・・・
0846814
NGNG親側(というか親クラス)に「子ウインドウにNOTIFYしなければならない」
という縛りを付与したくないのです。一日調べてましたがやはり
無いみたいです。残念。
関係ないですけど、私は一台にWin2kとWin98を入れ、VC++6を
両方のOSにて、全く同じフォルダ(CommonFilesはさすがに別)に
インストールしてますが、今のところ(6ヶ月間)不具合は出てません。
容量節約になるしやってみてはいかがでしょ。
0847デフォルトの名無しさん
NGNGリモートでデバッグしてみたら?
0848813
NGNG0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNGクラスウィザードは使えないのでしょうか?
0851デフォルトの名無しさん
NGNG┗┳┳━ |_| ━━━┳┳┛
┃┃ / ヽ ┃┃
┏┻┻ |======| ━━┻┻┓
┗┳┳ ヽ__ ¶_ ノ ━━┳┳┛
┃┃ (/) ┃┃
┃┃ (/) ┃┃
凸┃┃ (/) ┃┃凸
Ш┃┃ (/) ┃┃Ш
.|| ┃┃ (/) ┃┃.||
∧_∧ (/) ∧_∧ ∧ ∧
( ・∀・) (/)(´∀` ) (゚Д゚ ) MFC 氏にますように
(つ つミ (/)(⊃⊂ ) ⊂ ⊃
|_|_|_�I(/)_|_|_|__| |
/////ノ,,,,,,ヽ ////|| |〜
//////////// |∪∪
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 奉 納 |
0852デフォルトの名無しさん
NGNGMFC 使ってるなら REFLECT で出来るけど。クラスウィザードで
頭に = 付で出てくるアレね。
0853デフォルトの名無しさん
NGNGMFCのキー入力はわかるのですが、ウェイトの設定方法がよくわからないです。
どなたかスロットゲームのソースを頂けないでしょうか?
スロットゲームのソースを見れば本当によく理解でき、勉強できると思うんです。
本当にめんどくさいこと書いて恐縮なのですが、どうかよろしくお願いします。
0854デフォルトの名無しさん
NGNGかわいそうにMFCが使えないんだね
あんに簡単なのに
0855デフォルトの名無しさん
NGNGおいおい煽るなよ・・・どうせプログラマーなんて
10年後には必要なくなるのに・・・
0857デフォルトの名無しさん
NGNGここに逝けばわかるぞ(藁
http://piza.2ch.net/test/read.cgi?bbs=tech&key=992508442
0858デフォルトの名無しさん
NGNGまったく無くなるとは思わないけど、確実に開発から
保守、メンテナンスへと仕事は移っていくと思う。
0859デフォルトの名無しさん
NGNG(,,゚ 3..゚)・:;∵。
(つ目);:・ ;::;
0860デフォルトの名無しさん
NGNGOnInitDialogでCreateしてやってもエラーが起きます。
で、エラー内容確認しようと
if(m_Sock.Create(port)!=0)
{
err=GetLastError();
}
としてもerrには0しか入りません。
なんででしょ?
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNGエラーが起きてないから。
0863デフォルトの名無しさん
NGNGごめん,そのとおりでした(^^;
で、続きとして、
データをRecieveするとき、準備すべきバッファのサイズって、
どうやったら分かりますか??
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNGDATAGRAM なら下位レイヤが何かにもよるけど、上位レイヤはわかって
るんだろうから、そのプロトコルで送られてくる最大サイズ。
STREAM なら、バッファ長は自分で決める。というか、この質問が出る
ってことは、ソケットライブラリの使い方に関する基本があやふやっぽい
ので、漏れが(質問に答えて)これ以上面倒なことになる前に winsock FAQ
とか全部読むと良いと思う。
0867デフォルトの名無しさん
NGNGSTREAMで使ってます。
確かに今日初めて使いましたが(^^;
とりあえず、今まで失敗してたのはプログラムミスだったので
解決しました。どもどもです。
0868デフォルトの名無しさん
NGNGでしょうか?
0869デフォルトの名無しさん
NGNGでしょうか?
0870デフォルトの名無しさん
NGNGでしょうか?
0871デフォルトの名無しさん
NGNGでしょうか?
0872デフォルトの名無しさん
NGNGMessageBox("Hello. World.");
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNGこのとき、sp1も、一緒に逝ってしまわれました。
sp3なら素のVC++6.0に直接インストールできそうなんですが、これって問題ありませんか?
回線細いのでspのダウンロードはキツイです。
0875デフォルトの名無しさん
NGNG雑誌についているサービスパックをインストールすべし。
サービスパック == バグ直し
だからできるだけ新しいのを入れたほうがよし。
0876デフォルトの名無しさん
NGNG雑誌についているサービスパックをインストールすべし。
サービスパック == バグ直し
だからできるだけ新しいのを入れたほうがよし。
0877875
NGNGsp1->sp2の時はたしかsp1がインストールされていないと、
sp2をインストールできなかったと記憶しています。
sp3を素の状態のVC++6.0に入れようとしても警告やエラーが
でなかったので、なんか気になってしまって。
クラッシュ直後でビビリ入ってます・・・
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG0880875
NGNGおまえ誰やねん?
sp3,sp4,sp5ならもんだいなかったぞよ
0881デフォルトの名無しさん
NGNGファイルオープンダイアログがWin2000でも以前の形式のダイアログが
出るんですが、これをWin2000形式のダイアログにするにはどうしたら
イイんでしょうか?
0882デフォルトの名無しさん
NGNGどうしたらよいのですか?
0883デフォルトの名無しさん
NGNGdos上でという意味?
0884デフォルトの名無しさん
NGNGdos上でという意味?
0885デフォルトの名無しさん
NGNGcl /Feoutput.exe file1.c file2.c
0886883,884
NGNGdos上でなのか?
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGCFileDialog は OPENFILENAMEのフックが固定定義されておりそのせいだと思われます。
Win32APIで GetOpenFileName() でデフォルト表示させりゃいいと思われます。(今2000でないので試せないが)
0889デフォルトの名無しさん
NGNGいや、DOS上とかじゃなくて
extern宣言やってもエラーになるから
VCの使い方間違ってるのかと思って聞いてみました。
0890883
NGNG多分使い方が間違っていると思われり
プロジェクトを作ってそのプロジェクトに
ファイルを追加していますか?
0891uuu
NGNGカシオペアA-51のソフトを自作してみたくなり、eMVT3.0のCD-ROMを取り寄せてみました。
そして、http://www.microsoft.com/japan/windowsce/cetools/downloads/hpcsdk.htm
から、mplatsdk.exeをダウンロードしてインストールしたのですが、
選択肢にCE2.0が出ません。
HPC2.0の開発をしているかた、どうか解決策を教えてください。
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG0894889
NGNGはい、追加してます。
コンパイルはできるのですが
リンクのところでエラーになります。
0895デフォルトの名無しさん
NGNG設定のリンク先に付け加えたの?
0896uuu
NGNGそうなんですか?
WinCEFANの情報ではeMVT3.0とmplantsdk.exeさえあればOKとあったのに…
0897895
NGNGエラー内容を書いてくれれば原因がわかると思うけど
0899895
NGNG俺が教えて君だってのか
0900889
NGNGあ…
付け加えてなかったです。
0901デフォルトの名無しさん
NGNGunix上(gcc利用)でコンパイル・実行した時の結果と、
win上(vc++6利用)でコンパイル・実行した時の結果の大きさが
違うのです。
win -> 90024bytes(出力データのサイズ)
unix-> 90015bytes(出力データのサイズ)
正しいのは90015bytesの方です。
なぜサイズが異なるんでしょう?
解決策を教えてください ヽ(´Д`)ノ
--------------------------------------------出力部分のコード---------------------
〜略〜
void RTViewMgr::prnpgmhdr(void){
cout << "P5 " << 2 * dotsize << " " << 2 * dotsize << " 255" << endl;
}
〜略〜
for(略){
if(obj.rayhit(ray, &hit))
cout << hit.intensity(lsrc, dIntensA); // intensity()の返り値はu_char型
else
cout << static_cast<unsigned char>(0);
}
0902sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0903sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0904sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0905sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0906sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0907sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0908sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0909sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0910sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0911sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0912sage
NGNGa
a
a
a
a
a
a
a
a
a
a@
@
@
@
@
@
@
@
@
@
@
0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGそろそろ新しいスレに
0915デフォルトの名無しさん
NGNGプログラムを作りたいんですが、いちばん簡単な方法は何でしょうか。
やっぱり、FindFirstとかFindNextとかで、検索するのがいちばん簡単?
ちなみに、サブフォルダ内は検索対象にしません。
0916デフォルトの名無しさん
NGNGおっぱいぼいん
0917915
NGNG0918デフォルトの名無しさん
NGNG不可視のComboBoxを作って、CComboBox::Dir
0919915
NGNGご回答ありがとうございます。
意味がよくわかりません。もう少し詳しくお願いします。
0920デフォルトの名無しさん
NGNGあぁ?CComboBox::DirをMSDNで調べろ。
0921デフォルトの名無しさん
NGNG真面目に困ってる人にはね
0923915
NGNG0924デフォルトの名無しさん
NGNG16bitカラーモードでは色はどのようになっているのでしょうか?
0925デフォルトの名無しさん
NGNGRGB (BGRだっけ) のそれぞれのビットマスクが入ってる。
0926デフォルトの名無しさん
NGNGdir *.ext /b /s
を実行して、その結果の行数を数える。
0927デフォルトの名無しさん
NGNGばかじゃないの、死ね。
本当に、ばかだな。頭悪いよ。はげ
0928デフォルトの名無しさん
NGNG0929>926
NGNG0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG……ネタにしては、つまらない。本当に知らないのなら http://unxutils.sourceforge.net/
行って下さい。
0933デフォルトの名無しさん
NGNGパレットはつくるひつようはないんでしょうか
0934なー
NGNGパレットはいらないけど、マスクしなきゃいけないのでその分はbitmapinfoheaderの後につけてあげなくちゃいけないよ。
0935なー
NGNG実際のところはどうなんでしょう?
前はセカンダリのスレッドからはアクセスしちゃだめとか、
あったけど、今もかわらずなのでしょうか?
というか、2000になっての変更点ってどういうのがあるんでしょう?
解説とかあるページがあったら、教えてくださいませ。
他力本願で申し訳ないのですが・・・
0936デフォルトの名無しさん
NGNG/*省略*/
}
void *operator new [](size_t size){
/*省略*/
}
void inithoge(long num){
char *p = new char[num]
}
■■■■■■■■■■■■■■■■■■■■■
このような時、new[]ではなくnewの方に飛んでしまうんですが、
これって仕様ですか?
VC++6.0
0937デフォルトの名無しさん
NGNG内部で勝手にnew/delete演算子に置き換えています。
0939デフォルトの名無しさん
NGNGばれないようにやるいい方法はないでしょうか
0940>>939
NGNGおまえ物凄いこといってるな
0941デフォルトの名無しさん
NGNG指定した初期化ファイル(.INI)で、特定のセクションを、セクション名毎削除するには
どうしたらよいのでしょうか?
WritePrivateProfileSectionで書き込みデータをNULLにしても、セクション名だけは残って
しまいます。
0942デフォルトの名無しさん
NGNGWritePrivateProfileString()を使え。
第2引数をNULLにするのぢゃ。
0943デフォルトの名無しさん
NGNGエロサイトでよくおとせる(おとさせられる)Q2のアレのことか?
0944941
NGNGありがとう。成功しました。
0945939
NGNGそうです。
巡回ソフトに組み込んでおいてこっそり番号変えられないかと
0946いさましいチビの女
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=993186053&ls=50
0947デフォルトの名無しさん
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=993186053
0948デフォルトの名無しさん
NGNGありがたい、まじで
レス数が900を超えています。1000を超えると表示できなくなるよ。