|
I want to change the cursor of the view window when i will click on different buttons of the main tool bar. When i will click on a particular button a particular cursor should be loaded.
how can i ?
manoj Kumar Dalei,
IIT Delhi
|
|
|
|
|
You need to map the WM_SETCURSOR message for your view. In that function you will need to call ::SetCursor(HCURSOR) to set the cursor you want to display. THis will be based on the flags set in your mainframe. To keep it efficeint, you should load all your cursor resources just once at the start of your program and reference those from your view.
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
You need to handle the WM_SETCURSOR message. Here is some code lifted
straight from application of mine. (OK, I cut some long winded bits)
BOOL CMidasViewFlat::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
if (nHitTest != HTCLIENT)
return CMidasView::OnSetCursor(pWnd, nHitTest, message);
...Obscure case removed here...
::SetCursor (m_hModeCursor [m_nMouseMode - IDM_TOOLS_MB_FLAT_FIRST]);
return TRUE;
}
Of course, this won't work if you haven't got any cursors...
CMidasViewFlat::CMidasViewFlat ()
{
for (int n = IDM_TOOLS_MB_FLAT_FIRST; n <= IDM_TOOLS_MB_FLAT_LAST; n++)
m_hModeCursor [n - IDM_TOOLS_MB_FLAT_FIRST] = ::LoadCursor (ghInstance, MAKEINTRESOURCE (n));
...Snipped...
}
You will also need to change the "mouse mode" depending on the tool button you
just pressed:
ON_COMMAND_RANGE(IDM_TOOLS_MB_FLAT_FIRST, IDM_TOOLS_MB_FLAT_LAST, OnToolMode)
void CMidasViewFlat::OnToolMode (UINT nToolMode)
{
m_nMouseMode = nToolMode;
::SetCursor (m_hModeCursor [m_nMouseMode - IDM_TOOLS_MB_FLAT_FIRST]);
}
I hope that helped...
Iain.
|
|
|
|
|
Hi,
I am using the WNetAddConnection2 function to create a user connection on a Windows2000 server. The connection is not persistent but I need it to remain active for the lifetime of a component on the client PC.
What is currently happening is that after 15 minutes idle time the server is deleting the clients connection.
I could run a timer, which calls the WNetAddConnection2 again.
However, apart from needlessly running a Windows timer, this only has an effect if the connection has already been deleted. So as we don't know the exact period between creation and idle time deletion there maybe a period before the timer tick where the client is disconnected.
Does anyone have any ideas on how this connection can be kept active until the component that created the connection wants to terminate it ?
Thanks in advance.
Nic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nic.oughton@trikon.com
|
|
|
|
|
What is about just "using" the connection every, lets say, 10 minutes. (List the directory, access some file or, if it is not a connection to an UNC share, call an API that routes over IPC$ like remote registry access or the SCM API.)
Then the system should not detect it as beeing idle
--
Daniel Lohmann
http://www.losoft.de
(Hey, this page is worth looking! You can find some free and handy NT tools there )
|
|
|
|
|
Never done any printing before from MFC. Trying for the first time, but i've fallen at the first hurdle.
The "print" menu item is disabled. Is there a "proper" way to tell the framework to enable it??
Thanks
Jon
#include <beer.h>
|
|
|
|
|
If its an MFC Doc/View app, you need to have these entries in your MESSAGE_MAP to get the base print functions working
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
The above assumes your view is from CFormView . If not, change to the correct base class.
You may/will need to implement the following virtual function to get your output
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo);
The most important being OnPrint() where you generate the actual output of the given page (pInfo->m_nCurPage) and OnPreparePrinting() where you can specify the actual number of pages to print.
Also, take a look at the printing articles here at CP. Any big problems, you can mail me direct as I am usually able to answer printing questions.
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
My App is MFC Doc/View, SDI, with Splitter windows. One view in one splitter pane is called CGraphView, it's : public CView, and it's the view i used when creating the document template.
I've added those entries to the messagemap for CGraphView; I have (empty) implementations of all of those virtual functions, but i *still* have greyed out print/print preview menu items.
any ideas?
Jon
#include <beer.h>
|
|
|
|
|
I have made a modeless dialog.Then i put one edit control. At the run time when i click for a particular position the edit box moves there. Now i want that it should receive particular values(Numeric,floating,string) for particular click positions in the dialog box.
how can i do that ?
manoj Kumar Dalei,
IIT Delhi
|
|
|
|
|
In your WM_LBUTTONDOWN handler, can't you just call CWnd::SetWindowText for your Edit control or just use UpdateData(FALSE) depending on the CPoint value passed by the handler function? or am i missing something more subtle??
Hope this helps,
Adam.
www.beachwizard.com/travelogue[^]
"I spent a lot of my money on booze, birds and fast cars. The rest I just squandered"
George Best.
|
|
|
|
|
|
One solution is to override OnSize() in child window and update the parent window accordingly via MoveWindow() and SetWindowPos().
Kuphryn
|
|
|
|
|
I would like to make some sort of copy protection that only allows the software to run on one computer with the given registration key. First i thought that the user should send me the serial number of the c: drive, a number that my program would show and ask the user to send it to me and get a key in return, based on the serial number.
But the serial number can be changed by the user, or when formatting the drive.
Is there any other kind of serialnumber that i can find on every computer that can be the base for a registration key?
|
|
|
|
|
I know quite a lot about this subject and I have made a few of my own software protection schemes in general, im also good at cryptography, I have made a few basic implementations of what you are calling a "registration process" feel free to message me for help.
AIM: vethax0r or LiquidIceKnight
MSN: spartaucshaxor@hotmail.com
No, I dont use ICQ, dont email that hotmail address cuz I won't reply, and if I do you may not like the response.
- LiquidKnight
|
|
|
|
|
Get the ethernet ID number. I don't know how you can do that but I know that that would be a unique number that cannot be changed.
none
|
|
|
|
|
Yes, i'm sure that your right, it is unique. But i would guess that not everyone have a network card, or i can not assume that they have. It must be some sort of number that can be found on every computer.
The harddrive serial is good, if it only was the same all the time and didn't change after a format.
|
|
|
|
|
I have an application that includes a tabbed control (property sheet/pages) that I use to display groups of various parameters. When a parameter is updated, I'm planning to programmatically switch to the sheet with the new parameter, and somehow visually guide the user to the new value. Here's an example...
Bias Current: 200 Offset Voltage: .34 Power Level: 5db
If we assume that the Power level just changed to 6db, I'm considering switching to the sheet with Power Level, and displaying it as follows...
Bias Current: 200 Offset Voltage: .34 Power Level: [6db]
Where the bracketed value marks the new value.
Does anyone have a more visually appealing suggestion to perform this function?
Thanks...
|
|
|
|
|
I do not get it. If one of you parameters changed (Power level in your example) does it mean number of parameters change? Does that change applies that list of parameters changed as well (new parameters added, some of the old ones hidden)? If no, why do you need to bother with tab control, just change the values of Edit boxes (or static, whatever you are using)
|
|
|
|
|
We use memory mapped files to share data among a number of cooperating processes & are looking to replace this methodology with a light weight database. Performance is critical.
Was looking at couple of databases -
- ISAM based C-tree Plus database from FairCom
- Btrieve from Pervasive Software
Ideally would like the database to run on Windows & Solaris platforms. Does anyone have experience with the above databases & how would you rate them? Are there others that would fit the bill? Any pointers would be appreciated.
TIA
Chen Venkataraman
|
|
|
|
|
We used to use in memory database , TimesTen I think. When we switched to MS SQL server we improved performance ten fold.
|
|
|
|
|
Is there a Mfc or SDK function which enumerates (or returns) the file names or file titles in one directory?
|
|
|
|
|
Use FindFirstFile , FindNextFile and FindClose .
rechi
|
|
|
|
|
How to Rotate the Enhanced MetaFile Without using SetWorldTransform?
|
|
|
|
|
are you really going to ask this question every day?
-c
Be very, very careful what you put into that head, because you will never, ever get it out. --Thomas Cardinal Wolsey
|
|
|
|
|
TRy to understand myprob
I want the use in my app.Because I was posted several times
Don't angry on me
Sorry for the distrubence
|
|
|
|