Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Größe, Position der Checkbox (ownerdraw)

Received: by 10.180.98.234 with SMTP id el10mr1255758wib.3.1347850781609;
        Sun, 16 Sep 2012 19:59:41 -0700 (PDT)
Path: q11ni104468466wiw.1!nntp.google.com!feeder3.cambriumusenet.nl!feed.tweaknews.nl!85.12.40.139.MISMATCH!xlned.com!feeder7.xlned.com!newsfeed10.multikabel.net!multikabel.net!newsfeed20.multikabel.net!border3.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!border4.nntp.ams.giganews.com!border2.nntp.ams.giganews.com!border2.nntp.dca.giganews.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.bbs-scene.org!goblin2!goblin1!goblin.stu.neva.ru!news2.arglkargh.de!easy.in-chemnitz.de!news.tu-chemnitz.de!.POSTED!not-for-mail
From: Dirk Noack <nospam-d-dot-noa...@-ibs-dash-automation.dot.de>
Newsgroups: de.comp.os.ms-windows.programmer
Subject: Re: [VC, MFC] =?ISO-8859-15?Q?Gr=F6=DFe=2C_Position_der_Ch?=
 =?ISO-8859-15?Q?eckbox_=28ownerdraw=29?=
Date: Thu, 13 Sep 2012 09:57:01 +0200
Organization: ibs Automation GmbH
Lines: 52
Message-ID: <k2s3kd$6vm$1@gazette.hrz.tu-chemnitz.de>
References: <k2n0k9$7bn$1@gazette.hrz.tu-chemnitz.de> <k2njvu$tab$1@news.albasani.net> <k2ru9r$3hq$1@gazette.hrz.tu-chemnitz.de> <k2s171$2v0$1@news.albasani.net>
NNTP-Posting-Host: 194.31.246.64
Mime-Version: 1.0
X-Trace: gazette.hrz.tu-chemnitz.de 1347523021 7158 194.31.246.64 (13 Sep 2012 07:57:01 GMT)
X-Complaints-To: abuse@tu-chemnitz.de
NNTP-Posting-Date: Thu, 13 Sep 2012 07:57:01 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.24 (X11/20100228)
In-Reply-To: <k2s171$2v0$1@news.albasani.net>
Bytes: 2956
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

Jochen Arndt schrieb:
> GetButtonStyle():
> Returns the button styles for this CButton object. This function returns 
> only the BS_ style values, not any of the other window styles.
> 
> Du musst GetStyle() verwenden. Der MSDN Text ist hier etwas irref�hrend. 
> Es werden n�mlich nur die mit BS_TYPEMASK und BS_LEFTTEXT maskierten 
> Bits zur�ckgegeben.

Dann hat mich der MSDN Text wirklich in die Irre gef�hrt, denn ich habe 
es so interpretiert:
(1) Die Funktion gibt nur BS_-Stile zur�ck (-> BS_LEFT, BS_RIGHT ist ein 
BS_-Stil)
(2) Die Funktion gibt nicht die anderen Fensterstile zur�ck (-> 
WS_-Stile ... die will ich ja auch nicht).

Das die "erweiterten" BS_-Stile oberhalb von 0xFF bzw. au�er BS_TYPEMASK 
und BS_LEFTTEXT) �ber GetStyle() zu lesen sind, war mir nicht klar.

> 
> Aktivierung von OwnerDraw in PresubclassWindows():
> 
> ModifyStyle(BS_TYPEMASK, BS_OWNERDRAW, SWP_FRAMECHANGED);

Ich hatte bisher (geerbt vom Ersteller der vorhandenen Klasse) nur 
ModifyStyle(0, BS_OWNERDRAW, SWP_FRAMECHANGED).

> 
> Beim ermitteln der Textformatierung musst du noch darauf achten, dass 
> die meisten Flags Kombinationen sind (z.B. BS_RIGHT = 0x200, BS_CENTER = 
> 0x300). Ich verwende folgendes:

Ok, das hatte ich schon aus einem Newsgroup-Thread mit Dir und Martin 
Richter von vor 3 Jahren gelesen und zur Kenntnis genommen.

> 
> DWORD nStyle = GetStyle();
> UINT uFormat = 0;
> if (nStyle & BS_MULTILINE)
>     uFormat = DT_WORDBREAK;
> else // single line
> {
> [...]
> }
> // Windows 2000/XP: Hide accelerator (no underline for shortcut)
> if (lpDrawItemStruct->itemState & ODS_NOACCEL)
>     uFormat |= DT_HIDEPREFIX;
> 
>
Das werde ich mal ausprobieren.

Danke!