Member 12578086 Ответов: 1

Проблема Controlbox (кнопка максимизировать, минимизировать и закрыть) в форме windows C#


Всем Привет,

Я меняю цвет строки заголовка, используя следующий код, но когда я максимизирую свою форму или изменяю ее размер, то блок управления не появляется. когда я наведу курсор мыши, то снова появится окно управления, чтобы кто-нибудь знал, в чем проблема в следующем коде?

[DllImport("user32.dll")]
static extern int ReleaseDC(IntPtr hWnd, IntPtr hDc);
[DllImport("User32.dll")]

частная статический модификатор extern указателя IntPtr Иgetwindowdc(указателя IntPtr hwnd элемента);
открытый form1()
{
метод InitializeComponent();
}
защищенное переопределение void WndProc(ref Message m)
{
база.WndProc(ref m);
const int WM_NCPAINT = 0x85;
if (m. Msg == WM_NCPAINT)
{
Указателя IntPtr кчи = Иgetwindowdc(м. Его hwnd);
если ((int)hdc != 0)
{
Графика g = графика.FromHdc(hdc);
SolidBrush b = новый SolidBrush(цвет.FromArgb(0, 116, 212));
g. FillRectangle (b, новый прямоугольник(0, 0, 4800, 30));
г. Флеш();
ReleaseDC(m. HWnd, hdc);
}
}
}
частный недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{
этот.BackColor = Цвет.FromArgb(214, 236, 246);
этот.StartPosition = FormStartPosition.CenterScreen;
}

Что я уже пробовал:

Я попробовал вышеприведенный код. и многие другие коды, но я сталкиваюсь с той же проблемой с блоком управления.

1 Ответов

Рейтинг:
0

OriginalGriff

Просто: вы делаете базовую NCPaint, которая, как я подозреваю, обрабатывает его подконтрольные элементы управления для блока управления и связанных с ним элементов управления, а затем закрашиваете их своим новым цветом.
Я бы посоветовал вам вместо того, чтобы пытаться просто нарисовать его, взглянуть на нанесение кожи на всю форму. Есть несколько способов сделать это, но большинство из них стоят денег:
Кожный двигатель. C++, C#, Visual Basic skinning[^]
Расширение VisualStyler для Windows Forms .NET[^]
Google найдет вам больше: скиннинг c# - поиск в Google[^]


Member 924477

Любое решение для того, чтобы появился блок управления ?.