У меня есть форма без полей, которая всегда находится сверху и с флагом WS_EX_NOACTIVATE
, установленным для предотвращения ее фокусировки.
const int WS_EX_NOACTIVATE = 0x08000000;
protected override CreateParams CreateParams {
get {
CreateParams param = base.CreateParams;
param.ExStyle |= WS_EX_NOACTIVATE;
return param;
}
}
Форма содержит небольшую графическую рамку для перемещения (поскольку она без полей):
private void pictureBox4_MouseMove(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
ReleaseCapture();
SendMessage(this.Handle, 0xa1, 0x2, 0);
}
}
Однако, когда я перемещаю окно, оно не перерисовывается / отображается, только когда я отпускаю кнопку мыши, оно перемещает форму в новое место.
Я видел приложения, которые работают аналогичным образом, но они показывают окно во время движения (например, некоторые виртуальные клавиатуры, которые я видел). Я также видел много других вопросов в сети об этой проблеме, но без ответа.
Может кто-нибудь сказать мне, возможно ли показать окно / форму, подобную этой, при движении (например, "нормальное" окно), и если да, то как это сделать?