DN_CTLCOLORDLGITEM c FDLG_NONMODAL вызывается не сразу

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

DN_CTLCOLORDLGITEM c FDLG_NONMODAL вызывается не сразу

Post by NightRoman »

Проблема описана в комментариях скрипта ниже. Это баг или фича? Если фича, то как с этим жить, можно ли что-то сделать?

Code: Select all

<#
	DN_CTLCOLORDLGITEM c FDLG_NONMODAL вызывается не сразу

(1) Запустить командой модуля PowerShellFar плагина FarNet:

	ps: ./Try-NoModal-Coloring.far.ps1

(2) Элементы диалога покрашены обычными цветами диалога (баг?).

(3) Зайти в меню окон (F12) и выбрать этот немодальный диалог.
(или переключиться в панели и обратно CtrlTab CtrlTab)

(4) Элементы диалога покрашены "серый на черном" (как и задумано).

(*) Если немодальный Open() заменить на модальный Show(),
то элементы красятся в задуманные цвета сразу при открытии.

Отладчик подтверждает, что DN_CTLCOLORDLGITEM не вызывается при открытии.
#>

$d = $Far.CreateDialog(-1, -1, 52, 4)

$t = $d.AddText(1, 1, 50, 'gray on black')
$t.add_Coloring({
	$_.Background1 = 'Black'
	$_.Foreground1 = 'Gray'
})

$e = $d.AddEdit(1, -1, 50, 'gray on black')
$e.add_Coloring({
	$_.Background1 = 'Black'
	$_.Foreground1 = 'Gray'
	$_.Background2 = 'Black'
	$_.Foreground2 = 'Gray'
	$_.Background3 = 'Black'
	$_.Foreground3 = 'Gray'
	$_.Background4 = 'Black'
	$_.Foreground4 = 'Gray'
})

$d.Open()
Last edited by NightRoman on Tue 04 Jan, 2022 21:40, edited 2 times in total.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

DN_CTLCOLORDLGITEM c FDLG_NONMODAL вызывается не сразу

Post by NightRoman »

Ложная тревога, проблема была у меня, связанная с этим
viewtopic.php?p=169598#p169598
Post Reply

Return to “Разработка плагинов”