|
How to get mouse cursor hot spot from handle to the cursor?
modified 11-Mar-21 21:01pm.
|
|
|
|
|
GetIconInfo()
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
Message Closed
modified 11-Mar-21 21:01pm.
|
|
|
|
|
Maksim Goleta wrote:
It gives me the hot spot on the screen, how do I get the spot within the cursor so I can draw the cursor properly aligned?
No, it gives you the hotspot within the cursor. At least it always has for me.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
How to write script for compilation of VS.NET project. Languange of the script is not important, I just need working solution.
|
|
|
|
|
Is there a way to programmatically set XP's feature of hiding tray icons to always showing? My client wants to make sure their icon is always showing in the tray. I know you can manually set that, but they want it done automatically for the user.
Thanks
|
|
|
|
|
Suppose the item is selected,
how can i make it not be selected by function
Thanks
|
|
|
|
|
Look up SetItemState in MSDN.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
i looked but i did not find.
|
|
|
|
|
|
I Believe that you are looking for the code for Unselect the selected CListCtrl Item.
Here is small Code listing to get that:-
POSITION pos=<list ctrl var>.GetFirstSelectedItemPosition();
while(pos)
{
int nSelected=<list ctrl var>.GetNextSelectedItem(pos);
<list ctrl var>.SetItemState(nSelected,LVIS_SELECTED,0);
}
"I Think Believe this Will Help"
[Vote One Here, Complete my Survey....]
<h5
alok="" gupta="" <br=""> visit me at http://www.thisisalok.tk
|
|
|
|
|
Hi,
I'm trying to set up multycast connection between few PC's.
The problem is that after the client send the data (let's say - "hello world")
at the first time,select() ans accept() are blocking my apllication,until the clinet tryies to connect again.
I was told to try to setup the socket to non blocking mode,using the ioctlsocket() and i tried this:
For each listening port,i call this function:
SOCKET CMultycast_serverDlg::CreateTCPServerSocket(int PortNumber)
{
int Socket = 0;
struct sockaddr_in echoServAddr;
int bind_res;
WSADATA wsaData;
CString string;
unsigned long argp = 1;
if(WSAStartup(0x202,&wsaData) == SOCKET_ERROR)
{
AfxMessageBox(" Error : WSAStartup() has failed ");
return -1;
}
Socket = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
if(Socket == INVALID_SOCKET)
{
string.Format(" Unable to create socket for port #%d ",PortNumber);
AfxMessageBox(string);
return -1;
}
ioctlsocket(Socket , FIONBIO , &argp);
memset(&echoServAddr,0,sizeof(echoServAddr));
echoServAddr.sin_family=AF_INET;
echoServAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
echoServAddr.sin_port=htons(PortNumber);
bind_res = bind(Socket,(struct sockaddr*)&echoServAddr,sizeof(echoServAddr));
if(bind_res == SOCKET_ERROR)
{
string.Format(" Unable to create bind to local address for port #%d ",PortNumber);
AfxMessageBox(string);
return -1;
}
if(listen(Socket,MAXPENDING) == SOCKET_ERROR)
{
string.Format(" Unable to listen to socket in port #%d ",PortNumber);
AfxMessageBox(string);
return -1;
}
return Socket;
}
But the problem still appear.
Is there any toturial about this problem?
With best regards.
Eli
|
|
|
|
|
See the Winsock Programmer's FAQ[^].
In your particular case I would recommend using blocking sockets, but on a worker thread instead of in your main user interface thread.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
I need to render a pdf and also need to give a page turning effect(flip) when user changes pages via mouse pointer.
For this effect, I need to use some rendering library either OpenGL, DirectX or GDI.
I want to know how easily can this effect be implemented.
I mean if this can be done via some affine transformation what possible steps will be required.?
or is something other than plain transformation is required what possible steps shall those be?
It is an urgent requirement so i need "Instant Help"
|
|
|
|
|
I am trying to convert from Visual Studio 6 to vs7 (NET) and
am having problems with HtmlHelp. In vs6 HtmlHelp took 4
parameters, whereas in vs7, it won't compile unless it has 2
parameters (see code):
case HELP_FINDER:
#if vs7
HtmlHelp( 0, HH_DISPLAY_TOPIC);
#else
HtmlHelp( m_pMainWnd->m_hWnd, "petctviewer.chm", HH_DISPLAY_TOPIC, 0);
#endif
return;
In vs6, I have it pointing to a compiled help file and all
works well. In vs7, I noticed it brought up an old *.hlp
file which I happened to have still on my disk. It ignored
the *.chm which it uses in vs6.
If I look at the Microsoft documentation, it indeed talks
about the version with 2 parameters, but then if you go to
the SDK it has 4 parameters. Somewhat confusing....
In short, does anyone know how to convince vs7 to use the
4 parameter version of HtmlHelp?
Thanks,
Ilan
Ilan
|
|
|
|
|
I think you're getting caught by the addition of the CWnd::HtmlHelp and CWinApp::HtmlHelp methods in MFC 7. To ensure you call the global, API call, use the :: scope resolution operator:
::HtmlHelp( m_pMainWnd->m_hWnd, "petctviewer.chm", HH_DISPLAY_TOPIC, 0); If you want to use the MFC wrappers, you need to set your application (CWinApp-derived) object's m_pszHelpFilePath to the path of your help file and call EnableHTMLHelp .
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
Mike,
Thanks for the very clear explanation.
1) the code works
2) I now understand the "mystery" of why it was working the way it was.
Ilan
|
|
|
|
|
suppose i have a class as follows:
class X
{
HANDLE hThread;
public:
X();
UINT ThreadProc(LPVOID lpVoid);
};
now in the constructor X(), i call the function CreateThread() as follows:
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)ThreadProc,NULL,0,NULL);
i get the following error:
error C2440: 'type cast' : cannot convert from 'overloaded-function' to 'LPTHREAD_START_ROUTINE'
Even if i do the following, i get the same error
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(X::ThreadProc),NULL,0,NULL);
I dont want to use a global function ThreadProc() because i want to access data members of the current object of the class X. So even using friend wont help in this case. Even passing of parameter to ThreadProc LPVOID parameter results in certain type incompatibilities.
Any workarounds ??
Please Help..
Nikhil
|
|
|
|
|
Hello Nikhil,
It is not possible to use a member function as the Thread Startup function in a call to CreateThread(). CreateThread() expects either a global function or a class static function. The "static" keyword must be used when declaring your thread startup function, e.g. :
class X
{
protected :
HANDLE hThread;
public:
X();
protected :
static DWORD WINAPI ThreadProc(LPVOID lpParameter);
};
By being attributed as "static", ThreadProc() is actually a global function albeit it is within the X namespace and you may also set it as a protected function so that it cannot be accessed outside the X namespace.
One word of advise, Nikhil : avoid creating your thread inside your constructor. It is not advisable because of problems which may occur due to the order of object creation. Another complication which may arise is when virtual functions get involved.
These are not serious concerns if your "X" class is kept simple with no class derivation and no virtual functions. For more information, you may refer to my article : "The Importance of Sequence Order in the Creation of C++ Objects" :
http://www.codeproject.com/tips/OrderOfObjectCreation.asp[^]
Thanks,
Bio.
|
|
|
|
|
Hello Nikhil,
Also, when you call CreateThread(), you may pass a pointer to your X instance as follows :
hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(ThreadProc),this,0,NULL);
Note the "this" is passed as the 4th parameter to CreateThread().
Then, in ThreadProc(), you may cast the input parameter back to an X pointer, e.g. :
DWORD WINAPI X::ThreadProc(LPVOID lpParameter)
{
X* pX = (X*)lpParameter;
DWORD dwRet = 0;
return dwRet;
}
Note that because ThreadProc(), although a "global" function, is within the X namespace and so may access the private or protected members of an X instance.
For example :
class X
{
protected :
HANDLE hThread;
private :
int m_i;
public:
X();
protected :
static DWORD WINAPI ThreadProc(LPVOID lpParameter);
};
Note that m_i is "private". But your ThreadProc() function may access X::m_i :
DWORD WINAPI X::ThreadProc(LPVOID lpParameter)
{
X* pX = (X*)lpParameter;
DWORD dwRet = 0;
pX -> m_i = 100;
return dwRet;
}
Hope the above helps, Nikhil.
Best Regards,
Bio.
|
|
|
|
|
|
I am currently working on a graphical program in which I would like to use GDI+ (due to some of the extended functionality). I am a little confused on managing resources in the GDI+ framework. When working w/ MFC will resources such as Pens, Brushes, etc. clean themselves up or do I still have to manually delete these objects?
|
|
|
|
|
does anyone a complete source code for adding, deleting and changing elements in an array in visual C++. Thanks
|
|
|
|
|
|
Hi:
I just reinstalled my system and keep getting an error when I try to debug a DirectShow filter I'm developing. It says "Protection error: debugger detected" and it won't run. I think it's my webcam's filter that won't run, it thinks I'm runnig SoftIce or some cracking software.
Is there a way to avoid this? Any clue?
Thanks,
Aritosteles
|
|
|
|