2010/12/15(Wed) 17:20:02 編集(投稿者)
■No55806 (マサヤ さん) に返信
> C#だとこれであってますか?
これでは求める結果にならないと思います。元質問者は言語を指定していないので、
VB でも C# でも F# でも JScript でも、言語自体の縛りは無さそうですけれども。
>> <StructLayout(LayoutKind.Sequential)> Private Class ComboBoxInfo
> [StructLayout(LayoutKind.Sequential)]
> private class comboBoxInfo
間違いではありませんが、クラス名は大文字で始めるのが慣習です。
>> Public Sub New()
> public void New()
コンストラクタの記述が間違っています。
C# の場合は「public comboBoxInfo()」ですね。
>> Private Const ES_RIGHT As Integer = 2
> private const int ES_RIGHT = -8;
定数値が変わってしまっています。ES_RIGHT は 0x0002 です。
>> Dim style As Integer = GetWindowLong(ci.EditBoxHandle, GWL_STYLE)
>> SetWindowLong(ci.EditBoxHandle, GWL_STYLE, style Or ES_RIGHT)
> int style = GetWindowLong(ci.EditBoxHandle, GWL_STYLE);
> SetWindowLong(ci.EditBoxHandle, GWL_STYLE, style);
肝心の ES_RIGHT が指定されていません。このコードで最も重要な箇所なのに…。