cursor problem
-
Hello , I have a problem, I use LoadCursor () , but at runtime it shows me two error messages. Here is the code: term.h
void LoadCursor(double latitude,double longitude);
term.cpp
void Term::LoadCursor(double longitude,double latitude)
{
CursorLongitudeCurrent=longitude;
CursorLatitudeCurrent=latitude;
}nem.h
double ReadLatitudeValue(void); string ReadLongitude(void);
FormD.h
private: System::Void TMR_RS232Read_Tick(System::Object^ sender, System::EventArgs^ e) {
ptr_Term> LoadCursor(ptr_nem->ReadLatitudeValue(),ptr_nem->ReadLongitudeValue());
}AND errors: first: error LNK2019: unresolved external symbol "public: void __thiscall term::LoadCursorW(double,double)" (?LoadCursorW@term@@$$FQAEXNN@Z) referenced in the function "private: void __clrcall FormD.cpp::Form_D::TMR_RS232Read_Tick(class System::Object ^,class System::EventArgs ^)" (?TMR_RS232Read_Tick@FormD@FormD.cpp@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) Second: error LNK2028: unresolved token (0A0004AF) "public: void __thiscall term::LoadCursorW(double,double)" (?LoadCursorW@term@@$$FQAEXNN@Z) referenced in the function "private: void __clrcall FormD.cpp::FormD::TMR_RS232Read_Tick(class System::Object ^,class System::EventArgs ^)" (?TMR_RS232Read_Tick@FormD@FormD.cpp@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) if you have an idea Thank you
Your function is defined as
LoadCursor
, but somewhere in your code you are trying to callLoadCursorW
. This is probably due to the fact thatLoadCursor
is defined in Winuser.h as described in http://msdn.microsoft.com/en-us/library/windows/desktop/ms648391(v=vs.85).aspx[^]. Try changing your function name to something else, or use a namespace to avoid conflicts. -
Your function is defined as
LoadCursor
, but somewhere in your code you are trying to callLoadCursorW
. This is probably due to the fact thatLoadCursor
is defined in Winuser.h as described in http://msdn.microsoft.com/en-us/library/windows/desktop/ms648391(v=vs.85).aspx[^]. Try changing your function name to something else, or use a namespace to avoid conflicts. -
I changed the name of the function and I have no error but my cursor does not appear you have an idea please
LoadCursor just loads the resource, it doesn't change the system cursor to that shape. We'd need to see your code where you try to use the cursor. For example, do you use it: * In response to a WM_SETCURSOR message? * In a direct call to SetCursor()? * Passed to RegisterClass? John
-
I changed the name of the function and I have no error but my cursor does not appear you have an idea please
-
Since your code does not do anything (as far as we can see) it's difficult to answer that question. What is this function supposed to do?
Hello thank you for your help.I have 4 function. Term.h
bool stateCursor; // Clignote du curseur
void CreateCursor(PaintEA e);Term.cpp
void Term::CreateCursor(PaintEA e){
SolidBrush^ blackBrush = gcnew SolidBrush( Color::Black );
SolidBrush^ redBrush = gcnew SolidBrush( Color::Red );if(CurPointCurrent!=CurPointPrevious) {
int deltaX=CurPointCurrent.X-CurPointPrevious.X; int deltaY=CurPointCurrent.Y-CurPointPrevious.Y; float distance= sqrt(pow((float)deltaX,2)+pow((float)deltaY,2)); float vectorX=deltaX/distance\*polygoneLength; float vectorY=deltaY/distance\*polygoneLength; // Creation des points de polygone Point point1 = Point(CurPointCurrent.X+vectorX,CurPointCurrent.Y+vectorY); Point point2 = Point(CurPointCurrent.X+vectorX\*-0.866-vectorY\*0.5,CurPointCurrent.Y+vectorX\*0.5+vectorY\*-0.866); Point point3 = CurPointCurrent; Point point4 = Point(CurPointCurrent.X+vectorX\*-0.866-vectorY\*-0.5,CurPointCurrent.Y+vectorX\*-0.5+vectorY\*-0.866); // Dessine (clignoter noir <-> rouge) array^ curvePoints = {point1,point2,point3,point4}; if(stateCursor==false) { e->Graphics->FillPolygon( blackBrush , curvePoints ); stateCursor=true; } else { e->Graphics->FillPolygon( redBrush, curvePoints ); stateCursor=false; }
}
else{
if(stateCursor==false) {
e->Graphics->FillEllipse( blackBrush , CurPointCurrent.X-circleRadius,CurPointCurrent.Y-circleRadius,circleRadius*2,circleRadius*2);
stateCursor=true;
}
else {
e->Graphics->FillEllipse( redBrush , CurPointCurrent.X-circleRadius,CurPointCurrent.Y-circleRadius,circleRadius*2,circleRadius*2 );
stateCursor=false;
}
}
}FormD.h
private: System::Void picB_MainMap_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
if(!first\_time) { ptr\_Term->CreateCursor(e); }
}
private: System::Void picB_SubZone_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
if(!first_time) {
ptr\_Term->CreateCursor(e);
}
}Thanks
-
Hello thank you for your help.I have 4 function. Term.h
bool stateCursor; // Clignote du curseur
void CreateCursor(PaintEA e);Term.cpp
void Term::CreateCursor(PaintEA e){
SolidBrush^ blackBrush = gcnew SolidBrush( Color::Black );
SolidBrush^ redBrush = gcnew SolidBrush( Color::Red );if(CurPointCurrent!=CurPointPrevious) {
int deltaX=CurPointCurrent.X-CurPointPrevious.X; int deltaY=CurPointCurrent.Y-CurPointPrevious.Y; float distance= sqrt(pow((float)deltaX,2)+pow((float)deltaY,2)); float vectorX=deltaX/distance\*polygoneLength; float vectorY=deltaY/distance\*polygoneLength; // Creation des points de polygone Point point1 = Point(CurPointCurrent.X+vectorX,CurPointCurrent.Y+vectorY); Point point2 = Point(CurPointCurrent.X+vectorX\*-0.866-vectorY\*0.5,CurPointCurrent.Y+vectorX\*0.5+vectorY\*-0.866); Point point3 = CurPointCurrent; Point point4 = Point(CurPointCurrent.X+vectorX\*-0.866-vectorY\*-0.5,CurPointCurrent.Y+vectorX\*-0.5+vectorY\*-0.866); // Dessine (clignoter noir <-> rouge) array^ curvePoints = {point1,point2,point3,point4}; if(stateCursor==false) { e->Graphics->FillPolygon( blackBrush , curvePoints ); stateCursor=true; } else { e->Graphics->FillPolygon( redBrush, curvePoints ); stateCursor=false; }
}
else{
if(stateCursor==false) {
e->Graphics->FillEllipse( blackBrush , CurPointCurrent.X-circleRadius,CurPointCurrent.Y-circleRadius,circleRadius*2,circleRadius*2);
stateCursor=true;
}
else {
e->Graphics->FillEllipse( redBrush , CurPointCurrent.X-circleRadius,CurPointCurrent.Y-circleRadius,circleRadius*2,circleRadius*2 );
stateCursor=false;
}
}
}FormD.h
private: System::Void picB_MainMap_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
if(!first\_time) { ptr\_Term->CreateCursor(e); }
}
private: System::Void picB_SubZone_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
if(!first_time) {
ptr\_Term->CreateCursor(e);
}
}Thanks
-
sorry my english is very bad. I tried to create a cursor. I have a function that nominated CreateCursor in Term.h and Term.cpp and I call this function in FormD.h but not display the cursor
-
I am still not clear what you are trying to do, but you may need to read http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor(v=vs.110).aspx[^].