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;
}
// 追加する ↑
}

2008年2月5日火曜日

VC++2005 ファイルのドラッグ&ドロップの実装(訂正)

VC++2005 ファイルのドラッグ&ドロップの実装(訂正)

08/02/04 の記事に間違いがありましたので、訂正したもの記載します。

エクスプローラからファイルをドラッグしてテキストボックスにドロップすると
ファイル名を表示する方法です。

//-------------------------------------------------------------------
private: System::Void textBox1_DragEnter(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) {
if(e->Data->GetDataPresent(DataFormats::FileDrop))
{
e->Effect = DragDropEffects::All;
}
else
{
e->Effect = DragDropEffects::None;
}
}
//-------------------------------------------------------------------
private: System::Void textBox1_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) {
if(e ->Data ->GetDataPresent(DataFormats::FileDrop)) // ファイルドロップのとき
{
array<System::String^>^ files = // 列挙型のファイル名を一覧を取得する
static_cast<array<System::String^>^>
(e->Data->GetData(DataFormats::FileDrop , false));
this->textBox1->Text = files[0]; // 先頭ファイル出力
}
}
//-------------------------------------------------------------------
※上記ソースはそのままコピーして使用するとコンパイルエラーとなります。
全角'<'を半角'<'すれば大丈夫です。

2008年2月4日月曜日

VC++2005 ファイルのドラッグ&ドロップの実装

VC++2005 ファイルのドラッグ&ドロップの実装

エクスプローラからファイルをドラッグしてテキストボックスにドロップすると
ファイル名を表示する方法です。

//-------------------------------------------------------------------
private: System::Void textBox1_DragEnter(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) {
if(e->Data->GetDataPresent(DataFormats::FileDrop))
{
e->Effect = DragDropEffects::All;
}
else
{
e->Effect = DragDropEffects::None;
}
}
//-------------------------------------------------------------------
private: System::Void textBox1_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) {
if(e ->Data ->GetDataPresent(DataFormats::FileDrop)) // ファイルドロップのとき
{
array^ files = // 列挙型のファイル名を一覧を取得する
static_cast<array<System::String^>^>
(e->Data->GetData(DataFormats::FileDrop , false));
this->textBox1->Text = files[0]; // 先頭ファイル出力
}
}
//-------------------------------------------------------------------