caixa de grupo com o título como Caixa de verificação
-
20-08-2019 - |
Pergunta
Estou usando o Visual Studio 6.0 (VC ++ com MFC) na plataforma Windows XP. Eu estou tentando criar uma caixa de grupo com o título da caixa de grupo como uma caixa de seleção. Minha intenção é esta: Se a caixa de seleção estiver ativada, os controles dentro da caixa de grupo deve ser habilitado; ou então desativado.
Isto é possível realizar? Se sim, por favor me dar algumas direções.
Graças.
Solução
Existem algumas coisas que você pode tentar, dependendo de como verdade que você quer ficar com sua idéia e quanto trabalho você está preparado para colocar no esforço:
método simples
Use uma caixa de grupo normal, e depois dentro deste make o primeiro item é a caixa de seleção. Isto é simples de realizar, mas você perde a meta de ter a caixa de seleção como o título.
Funky do método de desenho 1
Use uma caixa de grupo normal, em seguida, no espaço sobre o lugar onde você sabe que o título é ir, coloque o seu caixa. Você terá que realizar algum cálculo complicado para obtê-lo para caber no bem e desenhar bem, sem cintilação.
Funky do método de desenho 2
Use algum tipo de superclasse ou subclasse / subclasse na caixa do grupo. Você pode substituir o manipulador WM_PAINT para desenhar apenas a moldura para a caixa de grupo. Coloque uma caixa de seleção normal no lugar onde você sabe que o título é ir. Isso deve funcionar melhor, porque você terá mais controle sobre o desenho, mas é provável que seja complicado de acertar. Na minha experiência, subclassificação é menor risco de implementar do que superclassing.
Outras dicas
Você está usando o editor de diálogo? Se assim for, colocar para baixo caixa de grupo. Em seguida, em cima dela, coloque uma caixa de seleção sobre a linha da caixa de grupo. Editar o recurso para definir a ordem Z, ou fazê-lo no código. Você quer que a caixa de seleção para estar no topo da caixa de grupo. Adicionar um manipulador para a caixa de seleção e ativar / desativar os controles dependendo do estado caixa de seleção.
Eu escrevi um chamado CGroupCheck alguns anos atrás e está disponível a partir de CodeProject: http: //www.codeproject.com/KB/buttons/groupcheck123.aspx