VisualC++相談室 2
■ このスレッドは過去ログ倉庫に格納されています
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を、ボタンやメニューによってではなく、プログラム内のメソッドなどで発生させるようにするにはどうしたらよいのでしょうか。
よろしくおねがいします。
■ このスレッドは過去ログ倉庫に格納されています