It sounds like your not converting between the proper views. A view's frame is set to the coordinates of it's superview, not its own internal coordinates, so if you were trying to convert the origin of a view to window coordinates, you would need to use the superview:
[[self superview] convertPoint:self.frame.origin toView:theWindow];
However, it is even simpler to convert the zero point from the view itself to the window. The two pieces of code are equivalent, and so it isn't necessary to use the origin at all.
[self convertPoint:CGPointZero toView:theWindow];
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…