Re: Is this a good class hierarchy for my project
On Mar 22, 9:22 pm, "crea" <n...@invalid.com> wrote:
Goran wrote:
On Mar 22, 5:09 pm, "crea" <n...@invalid.com> wrote:
Document is handled by the framework, so it's going to be difficult
for Analyze to contain the document. A reference to a document, yes.
so maybe a reference
Analyze should only exist while analysis is running (it seems to be a
function, or a function object at best, with a set of intermediary
results). In a classic MVC, Analyze would come from the controller,
and it would modify the model (document), which would cause view
update. Or at least that's how I see things.
Analyze will go through the data items (and the item group is very large)
and in the middle of it it should be able to contact the Chart view to draw
something. This is how it is coded at the moment.
That approach is either going to end in a jerky display, either in a
very ugly code. As soon as processing is long, and intermediary
results are shown in UI as they come, there's only one viable option:
background thread. That turns things around (conceptually, not much,
but the devil is in detail).
Presuming that you want your user to continue working with the
application "normally", here's what I'd do:
* make a copy of the the data to analyze
* invent "notification interface"
* run analysis in background, passing it the two things above
* analysis must call notification interface with any intermediate
results.
That's for the analysis part. UI part:
* document contains data to analyze (same as above)
* document implements notification interface. This implementation
receives calls from a non-UI thread, and uses some mechanism to pass
analysis information to UI thread (normally, a PostMessage; you'll
need a window for that; a dedicated hidden window that knows the
document works well, don't use main frame or a view for that) ^^^^
** When messages reach UI, you call UpdateAllViews as usual; pHint,
lHint should somehow contain/explain whatever has been passed through
the message, and are conceptually equivalent to what goes over
"notification interface".
^^^^ is the tricky part, and has very little to do with initial
question. For example, what do you do if user closes the document etc.
Goran.
X-Hamster-Info: Score=0 ScoreLoad=0 ScoreSave=0 Received 101117143953
Xref: localhost comp.os.ms-windows.programmer.tools.mfc:66 microsoft.public.vc.mfc:10271
Path: news.ett.com.ua!news-out2.kabelfoon.nl!newsfeed.kabelfoon.nl!xindi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!y31g2000vbt.googlegroups.com!not-for-mail
From: Leo <jchliustuff@gmail.com>
Newsgroups: microsoft.public.vc.mfc,comp.os.ms-windows.programmer.tools.mfc,microsoft.public.vstudio.development
Subject: Checkboxes not working with CListCtrl tile view
Date: Tue, 16 Nov 2010 21:23:21 -0800 (PST)
Organization: http://groups.google.com
Lines: 45
Message-ID: <71e0616c-32ce-4aea-bc9f-a1446847759d@y31g2000vbt.googlegroups.com>
NNTP-Posting-Host: 198.102.62.250
Mime-Version: 1.0
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1289971401 30932 127.0.0.1 (17 Nov 2010 05:23:21 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 17 Nov 2010 05:23:21 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: y31g2000vbt.googlegroups.com; posting-host=198.102.62.250; posting-account=rHNH5QoAAAA5m_IOObfZ_t2JEOQhwiqq
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
Trident/4.0; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR
3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729),gzip(gfe)
X-Old-Xref: news.ett.com.ua microsoft.public.vc.mfc:33594 comp.os.ms-windows.programmer.tools.mfc:117 microsoft.public.vstudio.development:1082
I need to create a tile view using CListCtrl with checkbox for each
item. I got two issues:
1) The checkboxes are not reponsive (if I don't use tile view,
everything is fine);
2) The whole item got selected / focus when I check the checkbox (I
want it work just like the regular checkboxes --- the item itself not
highlighted / focused).
The following is my source code:
DWORD exStyle = m_listCtrl.GetExtendedStyle();
m_ listCtrl.SetExtendedStyle(exStyle | LVS_EX_CHECKBOXES |
LVS_EX_LABELTIP);
// Title info
LVTILEVIEWINFO tvi = {0};
tvi.cbSize = sizeof(tvi);
tvi.dwMask = LVTVIM_COLUMNS;
tvi.cLines = 0;
m_ listCtrl.SetTileViewInfo(&tvi);
m_ listCtrl.DeleteAllItems();
int item = 0;
// Inset list items
String capName;
bool bEnabled = false;
int count = 0;
HashPosition pos = m_capsHash.GetStartPosition();
while (!pos.IsNil())
{
m_capsHash.GetNextAssoc(pos, capName, bEnabled);
count = m_ listCtrl.GetItemCount();
item = m_ listCtrl.InsertItem(count, capName);
ListView_SetCheckState(m_ listCtrl.m_hWnd, item, bEnabled);
}
m_ listCtrl.SetView(LV_VIEW_TILE);
Any idea? Thanks in advance=85
Leo