★初心者にVisual C++を教えるスレ★ Part5
■ このスレッドは過去ログ倉庫に格納されています
0001987
NGNGVisual C++ 初心者用スレッドです。
前スレ・関連スレは、>>2 ぐらい。
0688デフォルトの名無しさん
NGNGですよねぇ・・。
調べもせずに買ってしまったので。
無知って恐ろしい。
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG0692663 ◆bYHudLsQLw
NGNG0693デフォルトの名無しさん
NGNGSetWindowText
0694デフォルトの名無しさん
NGNGCWnd::IsWindowEnabled
0695デフォルトの名無しさん
NGNGありがとうございます
CButton *b2 = (CButton *)GetDlgItem( IDC_BUTTON2 );
b2->SetWindowText( _T("ggg") );
とこんな感じで書いてるのですが表示されなくて・・
因みにOSはWindowsCEです。
0696デフォルトの名無しさん
NGNGコードはあってると思う。
1、記述する場所を間違えてる
2、WindowsCEが原因 のどっちかかな
0697デフォルトの名無しさん
NGNG1、16*16*17*17サイズを表示する場合、DIBはそのサイズのを一つ用意すればよい
のですか。それとも16*16サイズを17*17個用意すればよいのですか。
2、BMP読み込みで一つ読み込んで一つ表示は分かるのですが、例えば3X3のフィー
ルドマップに1箇所ずつランダムで読み込むとしてそれが分かりません。
1がどちらであるかによって違ってくると思いますが。
3、今はBMP読み込みができないので、コードの配列に絵のデータを書いてやっていて、
lpBMP[(73712-(y*17*16*16+y2*17*16)+x*16+x2)*3]=m%4*85;
lpBMP[(73712-(y*17*16*16+y2*17*16)+x*16+x2)*3+1]=m/4%4*85;
lpBMP[(73712-(y*17*16*16+y2*17*16)+x*16+x2)*3+2]=m/16*85;
見たいにやっているのですが、BMPも同じ感覚なのですか。
4、3のはlpBMP=(LPBYTE)GlobalAlloc(GPTR,16*16*3*17*17);とやってから
そうしているのですが、これは3byte-1670万色使うと言うことだと思いますが、
lpBMPの打ち分けはどうなっているのでしょうか。3byteなら[0]B、[1]G、[2]R
[3]B、[4]G、[5]Rだと思うのですが、色数の変化によりどうなるのですか。
0698697
NGNGを読み込むとlpBMPのサイズは256バイトになります。16色なら128バイトで
1670万色なら768バイトです。全部緑の16*16sizeで256色のbmpを取り込み、
lpBMP[0]=0;なんかをやるとその部分だけ黒くなります。なお位置に注意
しなければならなく、[0]は左上が普通ですが、lpBMPは特殊で左下になります。
[0]左下→右下→左上→右上[255]です。4も3のが使えるので解決できました。
3byteの時の順番はB→G→Rのようです。これも逆のようですね。
1はたぶん前者ですね。後者だとすごく遅くなりました。2は1が前者の場合
3のを使えば自力でできそうです。ただ、逆であるためにlpBMP[(73712-
みたいにしないといけないが嫌ですね。
0699デフォルトの名無しさん
NGNGsdkの方のSetWindowPosを使いたいんですが、
コンパイルするとmfcのSetWindowPosをコンパ
イルしているらしく、引数の違いのため、コンパ
イルできません。
sdkのほうをコンパイルするにはどうすればいい
んですか?
0700bloom
NGNG0701699
NGNG::SetWindowPosでいけました。
0702デフォルトの名無しさん
NGNG0703690
NGNG0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG思い誤ってSetWindowText()を使ったりしたら、ウィンドウのタイトルが変更されてしまったり…。
どうか助けてください。
0706デフォルトの名無しさん
NGNGメモ帳のビューそのものにSetWindowTextすればいけるんじゃないかい?
0707705
NGNG>メモ帳のビューそのものにSetWindowTextすればいけるんじゃないかい?
これはどういう意味でしょうか?
メモ帳のハンドルという意味ですか?
0708デフォルトの名無しさん
NGNGHWND hwnd;
hwnd=FindWindowEx(FindWindow("Notepad", NULL),NULL,"Edit",NULL);
SendMessage(hwnd,WM_SETTEXT,0, (LPARAM) "( ´∀`)");
という方法もあります
0709デフォルトの名無しさん
NGNG分からんのだったらkeybd_eventでも使えば?
0710デフォルトの名無しさん
NGNG一回作りました。
そのあとラジオボタンの数を増やそうと思って
そのラジオボタンをコピーして
それから貼り付けてボタン1、ボタン2と
いうコントロールIDに変更しました。
そしたら実行するとラジオボタンが2つともチェックされてしまい
ラジオボタンのチェックが一つに限定されることが
できなくなりました。どこがおかしいのでしょうか
0711デフォルトの名無しさん
NGNG日本語
0712デフォルトの名無しさん
NGNGクソレスしてないで答えろや。
0713デフォルトの名無しさん
NGNGIDの値を連続させる&グループ
0714デフォルトの名無しさん
NGNG右側に別のワークスペースを表示して参考にしながら
現在のワークスペースをコーディングとか。
0715デフォルトの名無しさん
NGNG色のラインを引きたいのですが
それはプログラムで書くしかできないのでしょうか。
それともスタティックテキストみたいに
簡単にラインを引くことはできるのでしょうか
0716デフォルトの名無しさん
NGNGプログラムで書いて下さい。
0717デフォルトの名無しさん
NGNGIDEの複数起動
0718
NGNG0720デフォルトの名無しさん
NGNGこんな奴に教えたく無いね。
0722デフォルトの名無しさん
NGNGその後メイン文でそれを使うにはどうすればよいですか?
typedef struct{
int a;
int b;
}KOUZOUTAI;
main()
{
KOUZOUTAI *K;
int i;
K = malloc(i * sizeof(KOUZOUTAI));
printf("%d", k[0].a );
↑ここに何を入れればKOUZOUTAIの中身をプリントできますか?
どうも自分&とか*の使い方がいまいちです。教えてください。
0723bloom
NGNG0724デフォルトの名無しさん
NGNGiの値が不定なので正常にメモリーを確保できません
さらにポインタがキャストされていないので、
エラーが出てコンパイルも出来ないことでしょう
中身を出力したければ確保したぶんだけループでまわして
メンバ一つ一つを指定してください
0725デフォルトの名無しさん
NGNG0726722
NGNGすばやいレスthx。ちょっと書き方が不十分でしたのでもう一度。
typedef struct{
int a;
int b;
}KOUZOUTAI;
main()
{
KOUZOUTAI *K;
int i = 3;
K = malloc(i * sizeof(KOUZOUTAI));
kansuu(K); ←何かの関数をよんでると思ってください。
printf("%d", k[0].a );
それと、キャストって何ですか?お願いします。
0727デフォルトの名無しさん
NGNGint j;
略
K = (KOUZOUTAI*)malloc(i * sizeof(KOUZOUTAI));
略
for(j=0;j<i;j++)
printf("%d %d\n",k[j].a,k[j].b);
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGライセンスの種類によっては可能だったと思われ。
0732デフォルトの名無しさん
NGNGいかがいたしましょう?
0733デフォルトの名無しさん
NGNG該当件数を表示するものを作りたいのですが、
レコードセットの値を変換して取得する方法がわかりません。
お助けください。
_ConnectionPtr pCn;
_CommandPtr pCm;
_RecordsetPtr pRs;
::CoInitialize(NULL);
pCn.CreateInstance(__uuidof(Connection));
pCm.CreateInstance(__uuidof(Command));
pRs.CreateInstance(__uuidof(Recordset));
pCn->Open(L"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =test.mdb",
L"",L"",adOpenUnspecified);
pCm->ActiveConnection = pCn;
pCm->CommandText = "SELECT COUNT(*) FROM 帳票 WHERE 担当 LIKE '%佐藤%'";pRs = pCm->Execute(NULL,NULL,adCmdText);
ここからどうすれば良いでしょうか?
0734733
NGNG何とかなりそうです。
_variant_t vIndex = (long)0;
_variant_t vCount = pRs->GetCollect(vIndex);
long l = vCount.lVal;
0735デフォルトの名無しさん
NGNG鳥嶋宇宙科学技術研究所(TSTL)どんな研究所?
■▼■各放送局STL周波数【スタジオ⇔アンテナ】
がイパーイ出てきました。鬱です
0736デフォルトの名無しさん
NGNGテンプレートにダイアログぶち込んだのにリソースのヘッダーファイルが
作られていませんでした。そのためかDialogBoxを使っても
キャラ配列で名前を指定したり、MAKEINTRESORCEでダイアログ
ボックスのIDを生でぶちこんだりしても、IDを認識していないのか
ダイアログボックスを作れません。だれか対応策教えてください。
0737デフォルトの名無しさん
NGNGぶ、ぶちこむって、あんまり連呼しないで〜(*´д`*)
0738デフォルトの名無しさん
NGNGバ グ 込 み の ソ ー ス を プ リ ン ト ア ウ ト し て も
次 の 日 に は も う 使 い 物 に な ら ん だ ろ ( 爆 笑
0739デフォルトの名無しさん
NGNGアメリカンジョークですか?
0740デフォルトの名無しさん
NGNG0741名無し@沢村
NGNGSetLayeredWindowAttributes()
0742デフォルトの名無しさん
NGNGos XP
VCでプログラムを実行したあと、右上の×ボタンでウインドを消去
その後再びコンパイルしようとすると、LINK ERR 対象のファイルが使用中.....
これは終了処理が正しく行われていないからだと思われるのですが、
なにをしていない場合おこるのでしょうか?
windowsクラスは破棄しているのですが、それ以外にも defwndprocに何か渡さないといけないのでしょうか?
0743デフォルトの名無しさん
NGNG自己解決しました。
windowsクラスが破棄できていませんでした。
0744デフォルトの名無しさん
NGNGちなみに超絶初心者です
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNG完全自殺マニュアル
0747デフォルトの名無しさん
NGNGSetBkColor使うと真っ白(真っ黒だっけ?)の
モノクロビットマップにBitBltしたときに
設定した色の部分だけ色が変わるのです。(確か黒)
そのモノクロビットマップをマスクに使って
転送するのです。
0748デフォルトの名無しさん
NGNGfor文で10回ループさせようと思ってるんですが、メンバ名にカウント変数[i]を反映させるにはどうしたら(・∀・)イイ?
int dat[10];
for(i=0;i<10;i++)
{
dat[i] = m_ed[i] ←こんなことがしたい…
}
厨でスマソ…
0749デフォルトの名無しさん
NGNGGetDlgItem(ID + i, ・・・・・・)とか
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNGいや、それをループでやりたいってことだろ
0752デフォルトの名無しさん
NGNGレスthx!!
750さんの方が簡単にできそうなので、さっそく逝ってきまつ♪
0753デフォルトの名無しさん
NGNGいや、正直、収集できたらなんでもいいんで、さっそくやってみまつ…
ポインタ、見過ごしてました…(汗)
0754デフォルトの名無しさん
NGNGCEdit arrayEdit[10];
arrayEdit[0] = &m_ed1;
arrayEdit[1] = &m_ed2;
:
:
int dat[10];
for(i=0;i<10;i++)
{
dat[i] = arrayEdit[i]->GetLineCount();
}
みたいなことでいいのか?てっきり最初の
arrayEdit[0] = &m_ed1;の部分をループでやりたいのだと思って・・・
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNGDDXつかっての話だったら、
DDX_Text(pDX, IDC_EDIT_NUM0, m_iNum0);
DDX_Text(pDX, IDC_EDIT_NUM1, m_iNum1);
みたいに自動生成されるところで
DDX_Text(pDX, IDC_EDIT_NUM0, m_iNum[0]);
DDX_Text(pDX, IDC_EDIT_NUM1, m_iNum[1]);
と手動で書く。 と漏れはやってる。
力尽く主義なら 更新関数とかで
const int* pT[]= { &m_ed1, &m_ed2, ... };
for(int i=0;i<MAXNUM;i++) dat[i] = *pT[i];
てな方針を提案。
0757デフォルトの名無しさん
NGNGint *dat[10]={&m_ed1,&m_ed2…}
の一行だけで、すべてはかたずきました…
ループは、その後のプログラムで使うんで、データ収集も、そのまんまそのループ内に入れようとしてただけなんですわ…
なにぶん、独学で本読みながら学んでるんで、まだまだわからないことだらけです…
(ノД`)シクシク
0758デフォルトの名無しさん
NGNGΣ(゜Д゜;≡;゜д゜)
も、漏れがやったのは、力づくなのか?そうなのか?(汗)
0759756
NGNG変数名いまさら変えたくないYO! という場合はこちら みたいな
ニュアンスでな… 正直スマソ
0760デフォルトの名無しさん
NGNGfor(int i=0; i<10; ++i)
dat[i] = this->GetDlgItemInt(ID_FIRST_EDIT + i);
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG書きながら、IDが連番であることを仮定したコードを書くのは
論理的に美しくないような気がして(´・ω・`)ショボーン となってしまいます。
0763デフォルトの名無しさん
NGNGVisual Studio.NET Standard Version2002を使ってManaged C++アプリケーションのコードを練習していて、いざコードを書き終わってビルドしたところ
「fatal error C1102:次の初期化が出来ません:クラスが登録されていません」というエラーがタスクに表示されました。そこをダブルクリックしたらstdafx.cppというところに飛ばされたのですが、
当方初心者のため、そこで何をしたらいいのかわからなくて問題を解決できないでいます。この問題を解決するにはどうしたらよいのでしょうか?
私の使っているOSはWindowsXPで教本には「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」を使っています。ステップ2の「animals」というプログラムを作っているときにこの問題が発生しました。
どうかご存知の方いたらよろしくお願いします。
0764デフォルトの名無しさん
NGNGソースを書いたら?
0765デフォルトの名無しさん
NGNGVC++Ver6しか持ってないので細かいとこが違うかもしれんが。
プロジェクト→プロジェクトへ追加→コンポーネント及びコントロール(P)
あたりで追加コントロールが必要なのかもね。
0766デフォルトの名無しさん
NGNG「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」が
いかなるものか、わからないけど、プリコンパイルヘッダを使用しないとかにしてみる。
0767763
NGNGすみません、書くべきソースがわかりません・・・
>>765
とりあえず一般C++のクラスを追加をいじってみたら「新しい構文要素を読み出すのに失敗しました構文エラーが考えられます」というエラーメッセージが出てきました。
>>766
プリコンパイルヘッダはどのようにして使用しないようにするのでしょうか?
結局勉強不足で、質問ばかりになってすみません・・・もっと勉強してきます。
0768デフォルトの名無しさん
NGNGクリンナップ時に、resource.hをExcelでソートしたりする香具師もいると思うが、ID_DLG1_EDIT1みたいな名前を付けとけば連番が崩れなくて安全だ。
漏れはDDX近辺にASSERT(ID_EDIT_1+1 == ID_EDIT_2);みたいなアホなチェックも入れて、厨房が壊したら本人が気付くようにしているぞ。
(自慢なのか?)
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNGプリコンパイルヘッダは、コンパイルの高速化のために
コンパイルの途中結果をファイル化しておくもの。
ソースの一部変更などであればそのまま使えるが
ヘッダやソースの大幅変更した場合は破棄されて
再び作成される。
リビルドすれば、まっさらな状態からコンパイルできる。
もしかしたら、プロジェクトの作成方法がおかしいかもしれないので、
プロジェクトだけ別名で作成して、既に打ち込んだソースは別のところに
バックアップして、新しいプロジェクトのソースに貼り付けて見るといいかも。
0772デフォルトの名無しさん
NGNGフォントについて。
↓は合法なのでしょうか。
HFONT hOldFont = (HFONT) SelectObject(hDC, GetParent() -> GetFont() -> m_hObject);
↓は結構目にするんですが。
LOGFONT lf;
GetParent() -> GetFont() -> GetLogFont(&lf);
HFONT hFont = CreateFontIndirect(&lf);
HFONT hOldFont = (HFONT) SelectObject(hDC, hFont);
0773デフォルトの名無しさん
NGNGオーバーロードの利便性とはどのようなことなんでしょうか?
また、オーバーロードすることにより起こりえる問題点などありましたら教えていただきたいです。
0774デフォルトの名無しさん
NGNG勉強すれば自ずと分かるはずだから。
0775
NGNG0776デフォルトの名無しさん
NGNGSDKを用いたプログラムを勉強することにしました。
2つばかり質問させてください。
やはりゲームなどで用いる画像処理の効率は
SDKの方がいくらか高速になるのでしょうか?
あとSDKでのプログラミングでは
ClassWizardが使えないのですが
様々なサイトを調べても
あまりクラスを使って説明している人はいません。
SDKでクラスを用いるのは一般的でないのでしょうか?
0777デフォルトの名無しさん
NGNGどう比較するの?
ゲーム用の画像処理用のクラスがMFCにあるという前提?
だったら
>今までMFCを用いてプログラムを行っていましたが
いままで何もやっていないのと一緒
0778デフォルトの名無しさん
NGNG0779763
NGNGその方法を試みましたが結果は変わりませんでした。
「ステップバイステップで学ぶvisual C++.NET実践講座」には各ステップごとのプログラムの見本のプログラムが入ったCD−ROMがあるのですが、
その見本のプログラムをビルドしようとしても同じエラーが起こりました。Visual C++.NET Standard自体を再セットアップしたほうがいいでしょうか?
0780デフォルトの名無しさん
NGNGCD−ROMのサンプルをプロジェクトディレクトリごとLZHかZIPにでも
アーカイブしてどっかにうpしたらいかが?
それと、エラーメッセージをコピー&ペーストで書き込んだほうが良い。
エラーメッセージの種類(コード)がそれでわかる。
それと、ほんの最初のほうにでもプロジェクトの作成方法みたいなのが
書いてないの?
0781デフォルトの名無しさん
NGNGatof
0782デフォルトの名無しさん
NGNGプロジェクトの作成は一回しましたよ。Hello Worldですけど・・・それは正常に動作しました。
ビルドエラータスクに出てくるエラーメッセージは次のとおりです。
animals fatal error C1102: 次の初期化ができません : 'クラスが登録されていません
↑これをエラータスクでダブルクリックするとstdafx.cppの一行目に飛ばされます。
下記アプロダにてサンプルをうpしました。よろしくお願いします。
ttp://cgi.members.interq.or.jp/hokkaido/asato/upload/upload.cgi
0783763
NGNG0784デフォルトの名無しさん
NGNGもしリミットを超えたら新しく買いなおさないといけないのでしょうか?
2〜3ヶ月に1度は再インストールするので、ものすごく不安なんです。
0785デフォルトの名無しさん
NGNG割れ厨いってよし
0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNGマウスカーソルの座標をセットする命令って何でしたっけ・・・?
■ このスレッドは過去ログ倉庫に格納されています