.NET C++を使用しています。
テキストボックスの表示を
背景を黒、文字を白、線を白にしたいのですが、
線を白にすることができません。
どなたかテキストボックスの枠組みを白くする
方法を知っていますか。
>.NET C++を使用しています。
とは?
.NET Framework(CLR)を使うプロジェクトのことでしょうか?
その場合、Visual Studioのバージョンは何なのでしょうか?
Visual Studio .NETを使っているということでしょうか?
その場合、どのプロジェクトで開発しているのでしょうか?
(MFCとか.NET Framework(CLR)とか。これが不明だと回答できない)
また、Visual Studioのバージョンは何なのでしょうか?
>どなたかテキストボックスの枠組みを白くする
>方法を知っていますか。
ですが、Windows XPの場合mユーザの変更によって(※)凹んだように表示できるのです
が、それを許さないのでしょうか?
※デザインの設定でWindows クラッシックにするとXpスタイルでなくなる
Visual Studio .NET 2005
.NET Framework(CLR)
です。
Form上のみにてテキストボックスの枠組みを白くすることを
希望しております。
後ろの質問に対する回答はないのでしょうか?
TextBoxのBorderStyleがFixedSingleになっているということなのでしょうか?
枠線をなしにして、FormのPaintイベントで枠線を描画するのが楽だと思うのですが。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=589734&SiteID=7
をC++/CLI化したもの
public ref class TextBoxEx : System::Windows::Forms::TextBox
{
private:
System::Drawing::Color _borderColor;
public:
TextBoxEx() : TextBox(), _borderColor(System::Drawing::Color::FromArgb
(100, 100, 100)) {}
property System::Drawing::Color BorderColor
{
System::Drawing::Color get() { return this->_borderColor; }
void set(System::Drawing::Color value) { this->_borderColor = value; }
}
protected:
virtual void WndProc(Message% m) override
{
static const int WM_NCPAINT = 0x85;
switch(m.Msg)
{
case WM_NCPAINT:
{
Graphics^ g = this->Parent->CreateGraphics();
Rectangle rc(this->Location, this->Size);
rc.Inflate(1, 1);
ControlPaint::DrawBorder(g, rc, this->_borderColor,
ButtonBorderStyle::Solid);
delete g;
}
m.Result = IntPtr::Zero;
return;
}
__super::WndProc(m);
}
};
どう使うかぐらいは考えてください。