2008年4月14日月曜日

VC++2005/2008 で Managed DirectX の環境を設定する方法

VC++2005/2008 で Managed DirectX の環境を設定する方法

とりあえず、JOYSTICKが使用できる環境を設定します。

(1)DirectX SDK と Microsoft プラットフォーム SDK をインストールする。
(2)ツール -> オプション -> VC++ディレクトリ で以下の設定を行う。
●ディレクトリを表示するプロジェクト(S):実行可能ファイル
C:\Program Files\Microsoft DirectX SDK(November 2007)\Utilities\Bin\x86
C:\Program Files\Microsoft Platform SDK\Bin
●ディレクトリを表示するプロジェクト(S):インクリュードファイル
C:\Program Files\Microsoft DirectX SDK(November 2007)\Utilities\Include\x86
C:\Program Files\Microsoft Platform SDK\Include
●ディレクトリを表示するプロジェクト(S):ライブラリファイル
C:\Program Files\Microsoft DirectX SDK(November 2007)\Utilities\Lib\x86
C:\Program Files\Microsoft Platform SDK\Lib

(3)ソリューションエクスプローラーのプロジェクト名で右クリック -> 参照 -> 新しい参照の追加で以下を追加する。
●Microsoft.DirectX
●Microsoft.DirectX.DirectInput
●その他、DirectXで使用したいものがあれば追加する

(4)form1.hで以下を宣言する。
using namespace Microsoft::DirectX;
using namespace Microsoft::DirectX::DirectInput;

2008年4月5日土曜日

VC#2005/2008 string型を数値に変換する方法(変換失敗にも対応)

VC#2005/2008 string型を数値に変換する方法(変換失敗にも対応)
変換できる場合のみ変換します。

■C++
int result;
int::TryParse( textBox1->Text , result );

■C#
int result;
int.TryParse(textBox1.Text , out result);

2008年3月22日土曜日

VC#2005/2008 pictureBox jpgファイルを表示する方法

VC#2005/2008 pictureBox jpgファイルを表示する方法

■pictureBox にjpgファイルを表示する
//------------------------------------------
pictureBox1.BackgroundImage = Image.FromFile(@"C:\picture\same.jpg");
//------------------------------------------

■pictureBox にjpgファイルを背景を透明にして表示する
//------------------------------------------
Bitmap bitmap = new Bitmap(pib[iii].jpgName);
bitmap.MakeTransparent();
pictureBox1.BackgroundImage = bitmap;
//------------------------------------------

2008年3月10日月曜日

VC#2005/2008 pictureBox を移動させる方法

VC#2005/2008 pictureBox を移動させる方法

■pictureBox を移動させる方法
pictureBox を移動させるには、Point変数を宣言し、そこに移動させたい座標を代入して Location にセットします。

//------------------------------------------
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

Point poi; // 宣言

private void button1_Click(object sender, EventArgs e)
{
poi = pictureBox1.Location; // 現在の座標取得
poi.X++; // X座標++
pictureBox1.Location = poi; // pictureBox に反映する
}
}
}
//------------------------------------------

2008年2月18日月曜日

VC++2005 unsigned char*型 から string型へ変換する方法

VC++2005 unsigned char*型 から string型へ変換する方法

■unsigned char*型 から string型へ変換する方法
//------------------------------------------
using namespace std;

unsigned char buf[] = "あいうえお";
unsigned char* str = buf;

string sss = string((char*)str); // string型へ変換
//------------------------------------------

2008年2月15日金曜日

VC#/VC++2005 テキストボックス1の数値を16進数に変換してテキストボックス2に表示する

VC#/VC++2005 テキストボックス1の数値を16進数に変換してテキストボックス2に表示する

■VC#2005の場合
textBox2.Text = String.Format("{0:X}",Convert.ToInt16(textBox1.Text));
■VC++2005の場合
textBox2->Text = ::String::Format("{0:X}",::Convert::ToInt16(textBox1->Text));

コンバートの種類は ToByte , ToChar , ToInt32 など他にもいろいろあります。

2008年2月12日火曜日

VC#2005 フォームをシングルトンのモードレスにする方法

VC#2005 フォームをシングルトンのモードレスにする方法

フォームのインスタンスがすでに存在するかどうかチェックし、なければ新しいインスタンスを作成するようにします。
VC++2005より簡単です。

//■form1.cs
private void button1_Click(object sender, EventArgs e)
{
Form2.Instance().Show();
}
//■form2.cs
public partial class Form2 : Form
{
/* コメントにする↓
public Form2()
{
InitializeComponent();
}
コメントにする↑ */

// 追加する ↓
private static Form2 instance = new Form2();

public static Form2 Instance()
{
if (instance.IsDisposed)
{
instance = new Form2();
}
Form2.instance.InitializeComponent();
return instance;
}
// 追加する ↑
}